1

www.LoadImageIntoTexture(...) を使用して、ゲームの別の Web サイトから画像を読み込もうとしていますが、これはデスクトップと iPad で機能します。Webプレーヤーにはありませんが。次のエラーが表示されます。

ダウンロード時に次のエラーが発生した www ストリームからデータをロードしようとしています。crossdomain.xml ポリシー ファイルが見つからないため拒否されました UnityEngine.WWW:LoadImageIntoTexture(Texture2D)

これは問題を非常に明確に説明していますが、奇妙なことが 1 つあります。「 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これはブラウザで開いたときに適切な画像を表示しますが、Web プレーヤーには読み込まれません。 ..

そのため、何が問題なのかはわかりますが、修正方法はわかりません。ここの誰かが助けてくれることを願っています。

ありがとう!

4

1 に答える 1

1

サーバーから要求されたときに、ツールチップ画像に MIME タイプを設定していません。そのため、ブラウザにロードするときに画像ではなくテキストとして表示されます。Unity はそれが画像であると判断できず、crossdomain.xml を持たないサイトからバイナリ データをダウンロードしようとしていると判断します。

おもうその画像の名前を tooltip.jpeg に変更した場合または、http ヘッダーに「image/jpeg」MIME タイプを追加しますそれが動作します。

更新: 最終的に、さらにいくつかのテストを実行するようになりました。Unity は MIME タイプを気にせず、ファイル拡張子のみを気にします。クロスドメイン ポリシーがない場合、ファイル名が '.png'、'.jpg'、または '.jpeg' で終わる場合にのみ画像が読み込まれ、それ以外の場合は拒否されます。

Unity の WWW クラスがいかに破綻しているかを示すもう 1 つの例です。

于 2012-11-26T00:38:55.197 に答える