Version: 5.6
HTTP サーバーからテクスチャを取得 (GET)
HTTP サーバーにフォームを送信 (POST)

HTTP サーバーからアセットバンドルをダウンロード (GET)

アセットバンドルを遠隔サーバーからダウンロードするには UnityWebRequest.AssetBundle を利用できます。この関数はデータを内部バッファにストリーミングし、内部バッファではアセットバンドルのデータをワーカースレッドでデコードし解凍します。

関数の引数にはいくつかの形式があります。最も単純な形式では、アセットバンドルをダウンロードする URL だけが必要です。必要に応じて、ダウンロードしたデータの整合性を確認するためのチェックサムを追加することもできます。

また、アセットバンドルのキャッシュシステムを使用する場合は、バージョン番号、または Hash 128 データ構造のいずれかを提出します。これらは WWW.LoadFromCacheOrDownload をとおして古いシステムに提供されたバージョン番号、または Hash128 オブジェクト と一致します。

説明

  • この関数は UnityWebRequest を作成し、ターゲット URL を指定された URL 引数に設定します。また、HTTP 動詞を GET に設定しますが、他のフラグやカスタムヘッダーは設定しません。
  • この関数は、UnityWebRequestDownloadHandlerAssetBundle を添付します。このダウンロードハンドラーには特別な assetBundle プロパティーがあり、アセットバンドル内のリソースへのアクセスを許可するのに十分なデータがダウンロードされデコードされると、アセットバンドルを抽出するために使用できます。
  • 引数としてバージョン番号、または Hash128 オブジェクトを指定すると、これらの引数も DownloadHandlerAssetBundle に渡されます。 すると、ダウンロードハンドラーは、キャッシュシステムを使用します。

using UnityEngine;
using System.Collections;
using Unity.Networking;
 
class MyBehaviour: MonoBehaviour {
    void Start() {
        StartCoroutine(GetAssetBundle());
    }
 
    IEnumerator GetAssetBundle() {
        UnityWebRequest www = UnityWebRequest.GetAssetBundle("http://www.my-server.com/myData.unity3d");
        yield return www.Send();
 
        if(www.isError) {
            Debug.Log(www.error);
        }
        else {
            AssetBundle bundle = ((DownloadHandlerAssetBundle)www.downloadHandler).assetBundle;
        }
    }
}

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

    IEnumerator GetTexture() {
            UnityWebRequest www = UnityWebRequest.GetAssetBundle("http://www.my-server.com/myData.unity3d");
            yield return www.Send();

            AssetBundle bundle = DownloadHandlerAssetBundle.GetContent(www);
        }
HTTP サーバーからテクスチャを取得 (GET)
HTTP サーバーにフォームを送信 (POST)