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

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

重要: UNet は非推奨のソリューションであり、新しい Multiplayer and Networking Solution (MLAPI) が開発途中です。詳細については、Unity MLAPI ウェブサイトの情報 を参照してください。

テクスチャファイルをサーバーから取得するには、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)
Copyright © 2023 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961