現在、UnityWebRequest.GetAssetBundle
アセットをRAMにダウンロードしてロードしているようです。ロードするためにハードディスクにダウンロードする必要はありますか?AssetBundleをハードディスクにダウンロード
0
A
答えて
1
これは実際には複雑ではありません。インターネットからダウンロードする普通のファイルのように扱いますが、".unity3d"拡張子で保存してください。
.Download AssetBundle
UnityWebRequest
で要求を行うことにより、通常のファイルとして。 DownloadHandler.data
と
UnityWebRequest www = UnityWebRequest.Get(url);
yield return www.Send();
.Retrieveバイト配列データは、その後Application.persistentDataPath/yourfolder/filename.unity3d
に保存します。拡張子が".unity3d"であることを確認してください。
File.WriteAllBytes(handle.data, data);
これだけです。
データをロード.TO、AssetBundle.LoadFromFile
またはAssetBundle.LoadFromFileAsync
を使用します。まだ混乱している場合
AssetBundleCreateRequest bundle = AssetBundle.LoadFromFileAsync(path);
、ここでの事はどのように見えるかです。私はあなたがお勧めですかモバイル、上で実行するつもりです場合
IEnumerable LoadObject(string path)
{
AssetBundleCreateRequest bundle = AssetBundle.LoadFromFileAsync(path);
yield return bundle;
AssetBundle myLoadedAssetBundle = bundle.assetBundle;
if (myLoadedAssetBundle == null)
{
Debug.Log("Failed to load AssetBundle!");
yield break;
}
AssetBundleRequest request = myLoadedAssetBundle.LoadAssetAsync<GameObject>("boat");
yield return request;
GameObject obj = request.asset as GameObject;
obj.transform.position = new Vector3(0.08f, -2.345f, 297.54f);
obj.transform.Rotate(350.41f, 400f, 20f);
obj.transform.localScale = new Vector3(1.0518f, 0.998f, 1.1793f);
Instantiate(obj);
myLoadedAssetBundle.Unload(false);
}
関連する問題
- 1. 複数のunity3d assetbundleを1つのプログレスバーにダウンロードしますか?
- 2. Yii2 PjaxとAssetBundle
- 3. Yii2 AssetBundle publishOptionsパターン構文?
- 4. ハードディスクにデータバックアップを点火
- 5. ハードディスクへのアクセス
- 6. SATAドライブのハードディスクID
- 7. .NETでハードディスクをエミュレートする
- 8. バイトレベルでハードディスクを読む
- 9. マルチレイヤーRasterBrickをハードディスクに保存する
- 10. ハードディスクにFast kinectデータを書き込む
- 11. assetbundle js/cssをyii2の1ページにのみ追加するには?
- 12. Androidでハードディスクからファイルをスキャンする
- 13. AssetBundleを1つに読み込む - インスタンス化するオブジェクトがヌルです
- 14. Unity 5.4のassetBundleは5.6と互換性がありますか?
- 15. MySQLデータベースを外付けハードディスクに移動するには?
- 16. ハードディスク上のテキストファイルにluceneを介してRDBMSテーブルデータを格納
- 17. メモリ内のDLLサイズとハードディスク上のサイズ
- 18. NTFSハードディスクの$ I30のINDXエントリが無効
- 19. Ignite 2.0ハードディスクへのスワップ方法
- 20. 画像を直接ハードディスクに保存するカメラ
- 21. ラズベリーパイを内部の古いハードディスクに接続する
- 22. イメージをtfrecordから復元してハードディスクに保存する
- 23. 外部ハードディスクにVMware仮想マシンを保存する
- 24. アレイの内容をハードディスクに書き込む方法
- 25. 接続時にOSがUSBハードディスクを検出する方法
- 26. 新しいハードディスクにフラッシュドライブのウィンドウをインストールできない
- 27. 外部ハードディスクにスタンドアロンSVNサーバーを作成する
- 28. PowerShellホストからVmにハードディスクを追加してマウントするスクリプト
- 29. ファイル(ハードディスク)I/Oの特性を測定するには?
- 30. mshtml.htmlimgからハードディスクに画像を取り込む方法
おかげで、:
をダウンロードして保存:
ロードあなたは、いくつかの変更を行う必要があるかもしれません保存するには? persistentDataPath?また、もし私が私のassetbundleの古いバージョンを交換したいのであれば、それは問題になるでしょう。たとえば、私はassetbundle1_01を持っていました。そして、ユーザーが書き込み許可を与えないと、それが問題になるでしょうか? – ywj7931
はい、persistentDataPathを使用してください。あなたは**この中にフォルダを作成し、そのフォルダに保存しなければなりません。 persistentDataPathパスに直接保存しないでください。それは 'Application.persistentDataPath/yourfolder/filename.ext'でなければなりません。あなたは常にファイルを新しいバージョンに置き換えることができます。最後に、save関数に 'try'と' catch'コードがあります。例外がある場合は、catch'ブロックでチェックし、書き込み権限を有効にするようにユーザーに依頼することができます。あなたが欲しくない人のデバイスに書き込むことはできません。 – Programmer
Androidで問題が発生した場合は、「書き込み許可」を「外部(SDカード)」に変更してください。 – Programmer