2012-11-22 66 views
1

我試圖使用www.LoadImageIntoTexture(...)從我的遊戲上的不同網站加載圖像,並且這可以在桌面和我的iPad上運行。雖然它不在網絡播放器中。我收到以下錯誤:Unity LoadImageIntoTexture()在WebPlayer中不起作用

您正在嘗試從下載時出現以下錯誤的www流中加載數據。因爲沒有找到crossdomain.xml策略文件而被拒絕UnityEngine.WWW:LoadImageIntoTexture(Texture2D)

儘管存在一件奇怪的事情,但它非常清楚地解釋了這個問題。在「Security Sandbox of the Webplayer」的Unity文檔中,有一個例外部分表示:

您可以從沒有crossdomain.xml文件的服務器下載圖像。但是,您只能使用這些圖像作爲場景中的紋理。你不能使用GetPixel()。您也不能再從屏幕回讀。這兩種嘗試都會導致SecurityException被拋出。原因在於,只要內容開發者無法訪問它,就可以下載圖像。因此,您可以將其顯示給用戶,但不能將圖像的字節發送回其他服務器。

所以這說它被允許...我做錯了什麼?或者這是一個錯誤? :s

我試圖加載的鏈接是: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這確實給你一個適當的圖像,當你的瀏覽器打開,但不加載在網絡播放器...

所以,我有一個vage的想法,雖然沒有想法如何解決它。希望這裏的某個人能夠幫忙

謝謝!

回答

1

當您從服務器請求時,您沒有在工具提示圖像上設置MIME類型。這就是它在瀏覽器中加載時顯示爲文本而不是圖片的原因。 Unity不能告訴它是一個圖像,並認爲你正在嘗試從沒有crossdomain.xml的站點下載二進制數據。

我覺得如果重命名圖像tooltip.jpeg 或HTTP頭,將工作添加「圖像/ JPEG」 MIME類型。

更新:我終於做了一些更多的測試,並且Unity不關心mime類型只有關心文件擴展名。如果您沒有跨網域政策,只會在文件名以'.png','.jpg'或'.jpeg'結尾的情況下加載圖片,否則會被拒絕。

Unity中WWW類如何破壞的另一個例子是。

+0

是的,我知道這一點,雖然第三個鏈接的MIME類型是正確的,並且一個也不加載... –

+0

我注意到中間的URL有一個跨域策略文件http:// static .ddmcdn.com/crossdomain.xml和其他兩個不。也許Unity的WWW類沒有文檔記錄(不會是第一次)。 – Calvin

+0

啊哈,我隨便挑了一個,沒有注意到它有crossdomain xml。我現在試過這個:http://www.canadianpetconnection.com/wp-content/uploads/2011/09/Cats1.jpg這也可以。如果我是正確的,則不存在crossdomain.xml。 –

相關問題