ドキュメント

Unity Engine

Unity Engine

Unity Web Request Downloading Asset Bundle

Download an AssetBundle from a remote server using UnityWebRequest.GetAssetBundle.
読み終わるまでの所要時間 3 分最終更新 1ヶ月前

アセットバンドルをリモートサーバーからダウンロードするには
UnityWebRequest.GetAssetBundle
を利用できます。この関数はデータを内部バッファにストリーミングし、内部バッファではアセットバンドルのデータをワーカースレッドでデコードし解凍します。
関数の引数にはいくつかの形式があります。最も単純な形式では、アセットバンドルをダウンロードする URL だけが必要です。必要に応じて、ダウンロードしたデータの整合性を確認するためのチェックサムを追加することもできます。
また、アセットバンドルのキャッシュシステムを使用する場合は、バージョン番号、または Hash128 データ構造のいずれかを提出します。これらは、
WWW.LoadFromCacheOrDownload
経由で旧システムに提供されたバージョン番号または
Hash128 objects
と同じです。

詳細

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

例

using UnityEngine;using UnityEngine.Networking;using System.Collections; public class MyBehaviour : MonoBehaviour { void Start() { StartCoroutine(GetAssetBundle()); } IEnumerator GetAssetBundle() { UnityWebRequest www = UnityWebRequestAssetBundle.GetAssetBundle("https://www.my-server.com/myData.unity3d"); yield return www.SendWebRequest(); if (www.result != UnityWebRequest.Result.Success) { Debug.Log(www.error); } else { AssetBundle bundle = DownloadHandlerAssetBundle.GetContent(www); } }}