Unity3d Unity LoadImageIntoTexture()不';我不能在网络播放器中工作

Unity3d Unity LoadImageIntoTexture()不';我不能在网络播放器中工作,unity3d,Unity3d,我正在尝试使用www.LoadImageIntoTexture(…)从游戏中的另一个网站加载图像,这可以在桌面和我的iPad上运行。虽然它不在网络播放器中。我得到以下错误: 您正在尝试从www流加载数据,下载时出现以下错误。拒绝,因为未找到任何crossdomain.xml策略文件UnityEngine.WWW:LoadImageIntoTexture(Texture2D) 这很清楚地解释了问题,尽管有一件奇怪的事。在“”中的Unity文档中,有一个例外部分说: 您可以从没有crossdomai

我正在尝试使用www.LoadImageIntoTexture(…)从游戏中的另一个网站加载图像,这可以在桌面和我的iPad上运行。虽然它不在网络播放器中。我得到以下错误:

您正在尝试从www流加载数据,下载时出现以下错误。拒绝,因为未找到任何crossdomain.xml策略文件UnityEngine.WWW:LoadImageIntoTexture(Texture2D)

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

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

所以说这是允许的。。。我做错了什么?还是这是一只虫子

我正在尝试加载的链接是:(注意:如果你转到这个链接,你会看到一堆文本,尽管它是一张图片,因为它在我的游戏的桌面版本中确实有效。)我也尝试了这个链接:这个确实有效。所以这里有一个暗示,说明了什么是错的。最后,我还尝试了这个链接:当在浏览器中打开时,它会提供一个正确的图像,但不会加载到webplayer中

所以,我有一个迷茫的想法,什么是错误的,虽然不知道如何修复它。希望这里有人能帮忙

谢谢

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

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

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

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

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

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

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


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

是的,我知道这一点,尽管第三个链接的mime类型是正确的,并且其中一个也没有加载……我注意到中间的URL有一个跨域策略文件,而另外两个没有。也许Unity的WWW类的行为不像文档中描述的那样(这不是第一次)。啊哈,我只是随机选择了一个,没有注意到它有跨域xml。我现在试过这个:它也有效。如果我是正确的,就没有crossdomain.xml。谢谢调查!但这真的很糟糕,因为我找不到任何以正确文件名结尾的魔术卡图像:/不过,现在我知道怎么回事了:DCrazy想。。。由于只有webplayer版本存在此问题,因此可以在浏览器中执行javascript来获取图像,并使用Unity.SendMessage()将其作为Base64编码字符串发送到Unity中。是的,我知道这一点,尽管第三个链接的mime类型是正确的,并且其中一个也没有加载…我注意到中间的URL有一个跨域策略文件,而另外两个没有。也许Unity的WWW类的行为不像文档中描述的那样(这不是第一次)。啊哈,我只是随机选择了一个,没有注意到它有跨域xml。我现在试过这个:它也有效。如果我是正确的,就没有crossdomain.xml。谢谢调查!但这真的很糟糕,因为我找不到任何以正确文件名结尾的魔术卡图像:/不过,现在我知道怎么回事了:DCrazy想。。。由于只有webplayer版本存在此问题,因此可以在浏览器中执行javascript来获取图像,并使用Unity.SendMessage()将其作为Base64编码字符串发送到Unity中。