1

我正在尝试使用 www.LoadImageIntoTexture(...) 在我的游戏中加载来自不同网站的图像,这适用于桌面和我的 iPad。虽然它不在网络播放器中。我收到以下错误:

您正在尝试从下载时出现以下错误的 www 流加载数据。由于未找到 crossdomain.xml 策略文件而被拒绝 UnityEngine.WWW:LoadImageIntoTexture(Texture2D)

这很清楚地解释了这个问题,尽管有一件奇怪的事情。在“ Webplayer 的安全沙箱”中的 Unity 文档中,有一个例外部分说:

您可以从没有 crossdomain.xml 文件的服务器下载图像。但是,您唯一可以对这些图像执行的操作是将它们用作场景中的纹理。不允许对它们使用 GetPixel()。您也不再被允许从屏幕上回读。两次尝试都将导致抛出 SecurityException。这里的理由是,只要内容开发人员无法访问它,就可以下载图像。因此,您可以将其显示给用户,但不能将图像的字节发送回其他服务器。

所以这说它是允许的......我做错了什么?或者这是一个错误?:秒

我要加载的链接是:http ://deckbox.org/mtg/Ponder/tooltip (注意:如果你去这个链接,你会看到一堆文字,虽然它是一张图片,因为它确实可以在我的游戏的桌面版本中使用。)我也尝试了这个链接:http ://static.ddmcdn.com/gif/how-to-solve-cat-behavior-problems-2.jpg这个确实有效。所以有什么问题的提示。最后,我还尝试了这个链接:http : //gatherer.wizards.com/Handlers/Image.ashx?name=Ponder&type=card 在浏览器中打开时会给出正确的图像,但不会加载到网络播放器中。 ..

所以,我对出了什么问题有一个模糊的想法,尽管不知道如何解决它。希望这里有人可以提供帮助。

谢谢!

4

1 回答 1

1

当从服务器请求它时,您没有在工具提示图像上设置 mime 类型。这就是为什么它在浏览器中加载时显示为文本而不是图像的原因。Unity 无法判断它是图像,并认为您正在尝试从没有 crossdomain.xml 的站点下载二进制数据。

我认为如果您将该图像重命名为 tooltip.jpeg或在 http 标头中添加“image/jpeg”mime 类型它会起作用的。

更新:我终于开始做更多的测试,Unity 并不关心 mime 类型,它只关心文件扩展名。如果您没有跨域策略,它只会加载文件名以“.png”、“.jpg”或“.jpeg”结尾的图像,否则会被拒绝。

另一个说明 Unity 中的 WWW 类如何被破坏的例子是。

于 2012-11-26T00:38:55.197 回答