看到一篇關於unity資源載入入門文章(ps.內容很好),雖然我也算是個資深u3d程式了,但是,還從來沒有仔細想重載入資源方面的實現原理。最近剛看完《3d遊戲程式設計大師技巧》,借鑑對書中內容的理解,舉一反三分析一下u3d的資源載入。
要建立資源的例項,並將資訊記錄到例項中,那麼就需要知道資源的格式。
要知道,各種型別的資源其實沒什麼神秘的敵方,其實就是資訊組織的方式不同而已,相對應的,解析的方式也是不同的。
舉個例子,.plg檔案的格式是:
pyramid 5
5// 模型名字是 pyramid 有5個頂點,5個面020
0// 第1個頂點,座標(0,20,0) 頂點index=0
30 -10
30// 第2個頂點 頂點index=1
30 -10 -30
// 第3個頂點 頂點index=2
-30 -10 -30
// 第4個頂點 頂點index=3
-30 -10
30// 第5個頂點 頂點index=4103
021// 第1個多邊形 描述符是10 3個頂點,頂點的index分別是0,2,1103
032// 第2個多邊形103
043// 第3個多邊形103
014// 第4個多邊形104
1234
// 第5個多邊形
因此,類推到u3d的資源載入方式中,如果能夠知道所載入檔案的資訊組織方式,那麼載入使用什麼的,也就不神秘了。
總結unity資源載入入門中提到的檔案格式(u3d自定義的檔案格式):
fileformatversion: 2
guid: 620945c7971b94e4c98fb93f29a7526e // 資源的唯一標識
timecreateed: ***x // 建立時間
monoimporter: // 指令碼
serializedversion: 2
defaultreferences:
executionorder: 0
icon:
userdata:
folderasset: yes // 資料夾(資料夾才有的型別)
guid是標識資源的唯一id。資料夾、指令碼什麼的,也都是資源,都有.meta檔案。
如果是模型資源的.meta檔案,裡面有儲存模型的匯入資訊、動作資訊等。匯入模型的不同配置都在模型的.meta檔案中。u3d中只能修改模型的配置檔案,模型資源其實是沒有修改的。
同理,其他檔案比如什麼的,配置檔案也都在.meta檔案中記錄
總之,遊戲中的東西都不是憑空出現的。所有東西都記錄到檔案裡面。檔案也就是資源。遊戲過程中將資源的資訊載入到記憶體中。
以上。
Unity優化 資源優化之紋理優化
unity3d引擎處理紋理 不論你匯入的是png,psd還是tga,它們都會被自動轉換成unity自己的texture2d格式。美術資源規範 貼圖長寬應為4的倍數 不同平台的圖集格式選擇方案 textureimporterformat android rgb compressed etc1 4 bi...
Unity 提取遊戲資源之ktx轉換
從雨松的博文 unity3d研究院之mac上從.ipa中提取unity3d遊戲資源 六十六 可以學到提取unity的遊戲資源,其中有用到乙個工具 pvrtextool 提取出來的資源,其中的ktx資源,用pvrtextoolgui.exe可以開啟檢視,可以發現都是上下顛倒,且被拉伸 直接轉為png格...
Unity資源伺服器載入以及打包策略
主要內容 3 解壓資源,主要是對zip包進行壓縮。4 資源的讀取 assetbundle讀取 下面簡單介紹各個部分 1 assetbundle一鍵打包 windows assetbundle browser 1.1 新增需要打包的模型預製體 或者聲音 文字 其他 1.2 配置打包平台 android...