Version: 2021.3
言語: 日本語
HTTP サーバーからテキストやバイナリデータを取得 (GET)
HTTP サーバーからアセットバンドルをダウンロード (GET)

HTTP サーバーからテクスチャを取得 (GET)

重要: UNet は非推奨のソリューションになり、現在、新しい Multiplayer とネットワーキングソリューション (Netcode for GameObjects) が開発中です。詳細は、GameObjects Web サイトの Unity Netcode を参照してください。

テクスチャファイルをサーバーから取得するには、UnityWebRequest.Texture を利用できます。この関数は、UnityWebRequest.GET によく似ていますが、テクスチャを効果的にダウンロードしソートするために最適化されています。

この関数は、引数として 1 つの文字列を取ります。文字列は、テクスチャとして使用する画像ファイルのダウンロード元の URL です。

説明

  • この関数は UnityWebRequest を作成し、ターゲット URL を文字列引数に設定します。この関数は、その他のフラグやカスタムヘッダーは設定しません。
  • この関数は DownloadHandlerTextureオブジェクトを UnityWebRequest に設定します。DownloadHandlerTexture は、Unity でテクスチャとして使用する画像を格納するために最適化された特殊なダウンロードハンドラーです。このクラスを使用すると、生のバイトをダウンロードしてスクリプトで手動でテクスチャを作成する場合に比べて、メモリの再アロケーションが大幅に削減されます。
  • デフォルトでは、この機能は Upload Handler を設定しません。必要な場合は、手動で加えることができます。

using UnityEngine;
using System.Collections;
using UnityEngine.Networking;
 
public class MyBehaviour : MonoBehaviour {
    void Start() {
        StartCoroutine(GetTexture());
    }
 
    IEnumerator GetTexture() {
        UnityWebRequest www = UnityWebRequestTexture.GetTexture("https://www.my-server.com/image.png");
        yield return www.SendWebRequest();

        if (www.result != UnityWebRequest.Result.Success) {
            Debug.Log(www.error);
        }
        else {
            Texture myTexture = ((DownloadHandlerTexture)www.downloadHandler).texture;
        }
    }
}

または、補助的な getter を使って GetTexture を実装することもできます。

    IEnumerator GetTexture() {
            UnityWebRequest www = UnityWebRequestTexture.GetTexture("https://www.my-server.com/image.png");
            yield return www.SendWebRequest();

            Texture myTexture = DownloadHandlerTexture.GetContent(www);
        }
HTTP サーバーからテキストやバイナリデータを取得 (GET)
HTTP サーバーからアセットバンドルをダウンロード (GET)