LV. 23
GP 169

【問題】請問關於AssetBundle讀取場景以及IEnumerator的一些疑問(12/3新增Hash128讀取疑問)

樓主 高鐵道具象 z9yu2sc5
GP0 BP-
版上的各位大大好
小弟最近在嘗試AssetBundle的加載
但隨後伴隨著實作發現了一些問題  
而且就連實作的過程中也出現了一些不能理解的錯誤  因此想來版上問問各位大大們
先附上實作的程式碼
public class LoadAssetBundle : MonoBehaviour
{
     string url;
     string Scene01;
  
    // Update is called once per frame
    void Start()
    {
        StartCoroutine(Start01());
        url = @"C:\AssetBundle\test01";
        Scene01 = "rpgpp_lt_scene_1.0";
    }

    IEnumerator Start01()
    {
        UnityWebRequest reuest01 = UnityWebRequestAssetBundle.GetAssetBundle(url);

        yield return reuest01.SendWebRequest();

        if (reuest01.isNetworkError)
        {
            Debug.Log("下載失敗");
        }
        else
        {
            SceneManager.LoadScene(Scene01);
        }
    }
}

小弟目前的做法是先將AssetStore上的一個場景(rpgpp_lt_scene_1.0)打包成AssetBundle(prefeb)
然後打包的路徑設置為:"C:\AssetBundle\test01"
結果光是到這一步就會一直跳出Curl error 3: <url> malformed
啥???  不明字體???
到底是哪裡有不明字體呢
還是其實小弟我這整個架構從一開始就是錯的所以才會導致這種結果?
要呼叫的AssetBundle的名稱這樣打到底是對還是錯的?
=================================================================
另外想要順便問一下
就是有關於「IEnumerator」這種子程序跟一般的function到底差異在哪裡
為什麼好像不少網路上範例的script都會用到
IEnumerator跟一般的function不都可以等需要的時候再另外呼叫就好了嗎?
0
-
LV. 23
GP 169
2 樓 高鐵道具象 z9yu2sc5
GP0 BP-
感謝幾位大大們的回答
雖然現階段對於IEnumerator的應用還是沒有很理解...
不過還是先繼續往AssetBundle的方向研究
是這樣的   小弟想藉由讀取Hash128的值來判定目前的AssetBundle是否為正確的
小弟的做法是先讀取完一次AssetBundle紀錄Hash128之後再判定是否正確
程式碼如下
public class LoadAssetBundle : MonoBehaviour
{
    public string url;
    [SerializeField] private string Scene01;

  
    // Update is called once per frame
    void Start()
    {
        url = @"C:\AssetBundle\test01\";
        Scene01 = "rpgpp_lt_scene_1.0";
        StartCoroutine(Start01());
       
    }


    IEnumerator Start01()
    {
        UnityWebRequest reuest01 = UnityWebRequestAssetBundle.GetAssetBundle(url);

        yield return reuest01.SendWebRequest();

       


        if (reuest01.isNetworkError)
        {
            Debug.Log("下載失敗");
        }
        else
        {
            SceneManager.LoadScene(Scene01);

            AssetBundle bundle = DownloadHandlerAssetBundle.GetContent(reuest01);

            AssetBundleRequest asset02 = bundle.LoadAssetAsync<AssetBundleManifest>("rpgpp_lt_scene_1.0");

            yield return asset02;


            AssetBundleManifest loadedAssetMf = asset02.asset as AssetBundleManifest;

            var tempHash128 = loadedAssetMf.GetAssetBundleHash("");

            Debug.Log(tempHash128);

            Caching.IsVersionCached("yourUrl", tempHash128);
         
        }
    }
}

其中特別標註起來的這一行   系統顯示該回傳的物件為空
請問下是(" ")裡面的名稱指定的東西有誤還是什麼地方又搞錯了的?
P.S.  確定場景是可以正常讀取的
0
-
未登入的勇者,要加入 3 樓的討論嗎?
板務人員:

240 筆精華,12/29 更新
一個月內新增 2
歡迎加入共同維護。


face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】