注意 UNet は非推奨となり、今後 Unity から削除される予定です。新しいシステムが開発中です。詳細は ブログ と FAQ を参照してください。 |
テクスチャファイルをサーバーから取得するには、UnityWebRequest.Texture
を利用できます。この関数は、UnityWebRequest.GET
によく似ていますが、テクスチャを効果的にダウンロードしソートするために最適化されています。
この関数は、引数として 1 つの文字列を取ります。文字列は、テクスチャとして使用する画像ファイルのダウンロード元の URL です。
UnityWebRequest
を作成し、ターゲット URL を文字列引数に設定します。この関数は、その他のフラグやカスタムヘッダーは設定しません。DownloadHandlerTexture
オブジェクトを UnityWebRequest
に設定します。DownloadHandlerTexture は、Unity でテクスチャとして使用する画像を格納するために最適化された特殊なダウンロードハンドラーです。このクラスを使用すると、生のバイトをダウンロードしてスクリプトで手動でテクスチャを作成する場合に比べて、メモリの再アロケーションが大幅に削減されます。using UnityEngine;
using System.Collections;
using UnityEngine.Networking;
public class MyBehaviour : MonoBehaviour {
void Start() {
StartCoroutine(GetTexture());
}
IEnumerator GetTexture() {
UnityWebRequest www = UnityWebRequestTexture.GetTexture("http://www.my-server.com/image.png");
yield return www.SendWebRequest();
if(www.isNetworkError || www.isHttpError) {
Debug.Log(www.error);
}
else {
Texture myTexture = ((DownloadHandlerTexture)www.downloadHandler).texture;
}
}
}
または、補助的な getter を使って GetTexture を実装することもできます。
IEnumerator GetTexture() {
UnityWebRequest www = UnityWebRequestTexture.GetTexture("http://www.my-server.com/image.png");
yield return www.SendWebRequest();
Texture myTexture = DownloadHandlerTexture.GetContent(www);
}