原本想寫一下unity中通過資源來減小遊戲中記憶體效能的文章,不過我一直採用的還是打圖集、壓資源、延遲載入等老一套,感覺不是很夠講所以就只講了一部分優化,後面一部分就來講一下unity專案中的資源管理吧。unity的專案管理可以說在不同的公司中會很不相同,每乙個公司可能都會有自己的一套流程,但是核心的思想其實確實也是一樣的。
鄙人才疏學淺,如果有所疏漏或者有錯誤的地方還希望 多多指正。
貼圖資源是遊戲當中消耗最大的資源,貼圖資源的管理直接影響到整個遊戲記憶體的效能。
目前市面上的大多數遊戲都要涉及到熱更新,從unity5.0開始,簡化的api讓assetbundle的打包似乎不再是一件困難的工作,但是想要管理好assetbundle的關係卻並不是那麼容易的一件事。
在遊戲中載入資源我使用過兩種做法,都需要自己對載入方式進行封裝,通過多型來靈活載入工程內或者熱更的資源:
一種是講所有需要載入的資源,例如prefab、文字等等放入到resources下面(盡可能減少資源否則會影響啟動速度),而依賴的資源放在別的資料夾下,熱更的時候將資源載入到沙盒目錄下。在資源載入的時候,首先對沙盒目錄進行檢查,若有的話,則使用熱更資源,否則就載入resource下的資源。優點是在工程內不需要打包,而缺點是由於沒有打包,導致在最後出包的時候打包緩慢。
作為程式,我們在資源上面花的精力自然是越少越好,但是如果沒有好的工具鏈,好的流程,我們必定將會困在永遠做不完的資源管理中。美術發過來的max檔案或許需要經過你的匯出、匯入到unity、拖成預製體、掛動畫、掛碰撞盒等等的操作之後才能成為乙個真正可用的資源。這個時候乙個好的工具顯得格外重要。
推薦的方式是程式使用更加靈活的git來進行管理,有條件的可以自己做乙個gitlab伺服器用於存放**。而美術則使用區域網svn進行美術資源的管理,程式可以將部分直接可用的美術資源直接鏈入專案當中,其他的則是通過上述提到的工作流工具來進行批量處理。
Unity專案中的資源管理
貼圖資源配置 對於這資源管理,unity提供非常豐厚的支援。以貼圖為例子,unity支援直接把原始貼圖直接放進工程,不需要做任何額外處理。unity根據貼圖配置會自動生成最後的貼圖資料。不同平台 ios android pc 支援的貼圖格式不一樣,通過配置檔案的形式,最後方便的生成不同格式的貼圖。這...
深挖unity的資源管理
unity在這方面比較黑箱 有時候很困惑 比較特殊的就是這個destroy.destroy乙個asset的例項是可以的,但是如果destroy乙個asset就會把這個asset檔案被摧毀。對於prefab,這種差異很好區分,應該destroy那個instantiate出來的object 但是對於一些...
Unity3D的資源管理
asset bundles 製作 buildpipeline.buildassetbundle 載入 assetbundle.load 解除安裝 assetbundle.unload bool unloadallloadedobjects unloadallloadedobjects true 釋放...