主題 達人專欄

【Unity】 模組化遊戲的第一步,使用AssetBundle與圖形化介面管理

岩王帝君的 %%鼠 | 2022-05-22 23:02:40 | 巴幣 3386 | 人氣 616

前言:
主要是想練習資料驅動,也希望能加速開發自己的遊戲。
內容與程式碼一樣會貼在個人網站,喜歡的話可以點一下讚>///<


AssetBundle

AssetBundle也不算新技術了,關於他的文章很多。可將遊戲資料打包透過網路、外部資料夾下載進遊戲。
若資料都是包在遊戲內,如此遊戲改版,即使是改個參數都得重新輸出整個遊戲,導致更新量大增。如今透過打包的方式將邏輯、資料與主程式隔離,

讀取資料
指定外部StreamingAssets資料夾內的文件讀取。


AssetGraph

我記得是日商公司製作的插件,現在包在Unity preview package中。
可以將指定內容透過流水線的安排輸出成AssetBundle文件,之後即可透過串流更新遊戲內容。
基本了解:

不過這影片所展示的操作流程跟目前使用的本版有些差別,當初試了許久才成功。

例如我上次將地圖部件拆成多的mesh與文本資料,如下圖。 注意main為控制邏輯的lua腳本,但由於Unity無法認.lua副檔名,只能以.txt存取。
可以這樣安排:
Load From Directory:
指定讀取路徑

Split:
指定抓取哪些類型的資料。

Group
設定分包標準。例如我資料夾名稱以Map_開頭代表不同風格的地圖部件。
則Group keyword設定為 Map_*,「*」表任何字元。

Configure
輸出前的打包。指定打包名稱。
Build
設定打包選項、目標位置。
按下執行就會輸出至指定資料夾,整個都包在一個檔案。

使用腳本讀取

因為Assetbundle將整個資料夾的內容都包成一個檔案了,可以透過LoadAsset<T>("Name") 去抓取指定名稱的資料。

有趣的是,mesh資料可以視為Object引入,直接使用Gameobject.Instantiate()產生,或以Mesh資料使用。



差不多以上的流水線安排就很受用了,如果知道更多使用方式還麻煩指教了>///<

*其實是在為我最後想講的Lua做鋪路。

送禮物贊助創作者 !
0
留言

創作回應

追蹤 創作集

作者相關創作

更多創作