Unity Web Request Downloading Asset Bundle
Download an AssetBundle from a remote server using UnityWebRequest.GetAssetBundle.
読み終わるまでの所要時間 3 分最終更新 1ヶ月前
アセットバンドルをリモートサーバーからダウンロードするには を利用できます。この関数はデータを内部バッファにストリーミングし、内部バッファではアセットバンドルのデータをワーカースレッドでデコードし解凍します。
UnityWebRequest.GetAssetBundle関数の引数にはいくつかの形式があります。最も単純な形式では、アセットバンドルをダウンロードする URL だけが必要です。必要に応じて、ダウンロードしたデータの整合性を確認するためのチェックサムを追加することもできます。
また、アセットバンドルのキャッシュシステムを使用する場合は、バージョン番号、または Hash128 データ構造のいずれかを提出します。これらは、 経由で旧システムに提供されたバージョン番号または と同じです。
WWW.LoadFromCacheOrDownloadHash128 objects詳細
- この関数は を作成し、ターゲット URL を指定された URL 引数に設定します。また、HTTP メソッドを
UnityWebRequestに設定しますが、他のフラグやカスタムヘッダーは設定しません。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); } }}