回覆列表
  • 1 # 使用者8451710051916

    Unity會下載Assetbundle本地中,它的工作原理是先透過(版本號和下載地址)先在本地去找看有沒有這個Assetbundle,如果有直接返回物件,如果沒有的話,在根據這個下載地址重新從伺服器或者本地下載。這裡版本號起到了很重要的作用,舉個例子,同一下載地址版本號為1的時候已經下載到本地,此時將版本號的引數改成2 那麼它又會重新下載,如果還保持版本號為1那麼它會從本地讀取,因為本地已經有版本號為1的這個Assetbundle了。你不用擔心你的資源本地下載過多,也不用自己手動刪除他們,這一切的一切Unity會幫我們自動完成,它會自動刪除掉下載後最不常用的Assetbundle ,如果下次需要使用的話只要提供下載地址和版本後它會重新下載。

    我們在聊聊Assetbundle 中的指令碼,在移動平臺下Assetbundle裡面放的指令碼是不會被執行的,還記得我們打包前給兩個Prefab掛上了指令碼嗎?在手機上將Assetbundle下載到本地後,載入進遊戲中Prefab會自動在本地找它身上掛著的指令碼,他是根據指令碼的名來尋找,如果本地有這條指令碼的話,Prefab會把這個指令碼重新繫結在自身,並且會把打包前的引數傳遞進來。如果本地沒有,身上掛的條指令碼永遠都不會被執行。

    在Prefab打包前,我在編輯器上給指令碼中的變數 name 賦了不同值,當Prefab重新載入遊戲的時候,它身上指令碼的引數也會重新輸出。

    如果你的Assetbundle中的Prefab上引用的物件,那麼這樣做就會出錯了,你需要設定他們的依賴關係。或者執行時透過指令碼動態的載入物件。

  • 中秋節和大豐收的關聯?
  • 寫程式碼的工具有哪些,求推薦?