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

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

ノート: UNet は非推奨となり、今後 Unity から削除される予定です。新しいシステムが開発中です。詳細は ブログFAQ を参照してください。

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

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

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

説明

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

using UnityEngine;
using UnityEngine.Networking;
using System.Collections;
 
public class MyBehaviour : MonoBehaviour {
    void Start() {
        StartCoroutine(GetAssetBundle());
    }
 
    IEnumerator GetAssetBundle() {
        UnityWebRequest www = UnityWebRequest.GetAssetBundle("http://www.my-server.com/myData.unity3d");
        yield return www.SendWebRequest();
 
        if(www.isNetworkError || www.isHttpError) {
            Debug.Log(www.error);
        }
        else {
            AssetBundle bundle = DownloadHandlerAssetBundle.GetContent(www);
        }
    }
}
HTTP サーバーからテクスチャを取得 (GET)
HTTP サーバーにフォームを送信 (POST)