引擎 之七 理解資源以及Unity3d資源載入

2021-08-17 21:57:59 字數 1459 閱讀 9664

看到一篇關於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...