facebook twitter hatena line email

「Unity/AssetBundle/AssetBundleをサーバーから読込」の版間の差分

提供: 初心者エンジニアの簡易メモ
移動: 案内検索
(ページの作成:「==サンプル== #AssetBundlesを生成する #例として、user.csvのアセットバンドルファイル(userとuser.manifest)を上げる。 #以下サンプルを...」)
 
 
行41: 行41:
  
 
公式マニュアル:https://docs.unity3d.com/ja/current/ScriptReference/Networking.UnityWebRequestAssetBundle.GetAssetBundle.html
 
公式マニュアル:https://docs.unity3d.com/ja/current/ScriptReference/Networking.UnityWebRequestAssetBundle.GetAssetBundle.html
 +
 +
==既にロード済みのエラーが出る場合==
 +
以下エラーが出るとき
 +
can't be loaded because another AssetBundle with the same files is already loaded.
 +
既に同じファイルが、別ロジックからロードされてないか確認。

2021年8月5日 (木) 17:12時点における最新版

サンプル

  1. AssetBundlesを生成する
  2. 例として、user.csvのアセットバンドルファイル(userとuser.manifest)を上げる。
  3. 以下サンプルを実行。
using UnityEngine;
using UnityEngine.Networking;
using System.Collections;
public class SampleScene : MonoBehaviour
{
    public static TextAsset csv;
    void Start()
    {
        StartCoroutine(GetAssetBundle());
    }
    IEnumerator GetAssetBundle()
    {
        string url = "ttp://www.my-server.com/";
        string assetGroupName = "usergroup";
        using (UnityWebRequest uwr = UnityWebRequestAssetBundle.GetAssetBundle(url + assetGroupName))
        {
            yield return uwr.SendWebRequest();
            if (uwr.isNetworkError || uwr.isHttpError)
            {
                Debug.Log(uwr.error);
            }
            else
            {
                AssetBundle assetBundle = DownloadHandlerAssetBundle.GetContent(uwr);
                string assetFileName = "user";
                csv = assetBundle.LoadAsset<TextAsset>(assetFileName);
                Debug.Log("csv.text=" + csv.text);
            }
        }
    }
}

csv.textのところで、ファイル内のデータが、改行を含んで表示された。

公式マニュアル:https://docs.unity3d.com/ja/current/ScriptReference/Networking.UnityWebRequestAssetBundle.GetAssetBundle.html

既にロード済みのエラーが出る場合

以下エラーが出るとき

can't be loaded because another AssetBundle with the same files is already loaded.

既に同じファイルが、別ロジックからロードされてないか確認。