1)如何管理大型遊戲的美術資源工程
2)Google Play強制64位App相關問題
3)零散AssetBundle資源再打包疑問
4)Unity中Api Compatibility Level .net 4.x與.NET Standard 2.0的區別
5)Unity 2020版本OpenGL ES3下SRP Batcher失效問題html
這是第252篇UWA技術知識分享的推送。今天咱們繼續爲你們精選了若干和開發、優化相關的問題,建議閱讀時間10分鐘,認真讀完必有收穫。後端
UWA 問答社區:answer.uwa4d.com
UWA QQ羣2:793972859(原羣已滿員)服務器
Q:隨着項目參與制做的人數變多,各種美術資源的數量也在急速上升,縱然有各類規範和各種資源導入、檢查工具,跑一段時間後,仍然會出現工程裏各種廢棄的資源未能及時清理,致使資源和包體大小持續上升,包括:
1)各種資源在製做過程當中產生的一些中間文件;
2)本來在使用,但後面隨業務需求變更,已棄用的資源;
3)本來就屬於要放到遊戲中看看效果,但沒實際投放的資源。
想問下你們在處理這類問題時的一些方案?網絡
A1:題主遇到的問題和技術無關,和流程有關。工具
(1)監管工做負責到人,凡事預則立、不預則廢
每一個項目都須要有一個Performance Owner來對性能、資源等問題進行管控。若是沒有這我的,再強大的工具、再NB的團隊也是白扯。這我的能夠是項目的製做人、主程、QA Leader或者PM(通常小團隊不具有)均可以,就咱們合做的團隊來看,以QA Leader做爲Performance Owner的團隊居多。性能(2)監管流程要跟上
團隊中必需要有人來對資源問題、性能問題進行負責,且制定固定的流程來強制團隊養成持續監控、持續完善的習慣。三天打魚、兩天曬網的形式,是很難成事的,作遊戲開發也是如此。因此,將監控變成團隊研發的習慣,就須要經過流程來不斷把控,流程作到位了,一切就都好了。學習以上兩點作到了,題主的問題天然就解決了。優化
該回答由UWA提供網站
A2:監管負責人通常是PM。由於有些QA沒有常識,也沒有權利,PM最好懂業務,若是沒有PM最好就給客戶端主程這個權利,鎖版本是很必要的,大部分大廠都有這個。ui
用工具限制美術的操做,全部不正確的所有報錯,而後提示清楚。用鎖版本限制提交節點。而後要求不守規矩的人離開,不要問爲何會報錯。固然必須從製做人開始就要支持。通俗地講,美術和策劃不會操做工具又不願學習的,不配合做。
感謝馬古斯@UWA問答社區提供了回答,歡迎你們轉至社區交流:
Q:Unity能夠經過程序集加載對應的代碼,且Google Play已經強制64位APP,是否已經不支持經過Assembly.Load加載代碼了?
A:以下圖所示,Unity裏面Mono版本還不支持ARM64,因此要上Google Play(64位要求)只能使用IL2CPP,IL2CPP是不支持Assembly.Load的。
感謝Xuan@UWA問答社區提供了回答,歡迎你們轉至社區交流:
Q:Unity的AssetBundle資源有必要把零散的AssetBundle資源作成Zip嗎?好比300MB一個。由於在打AssetBundle的時候能夠選擇壓縮格式,因此不是爲了減小整體的大小,而是若是散的AssetBundle,在下載的時候性能會不會有壓力?各位在實踐中都是怎麼處理的呢?(資源量AssetBundle數量10W+,總大小在4G左右。)
A1:一堆散文件下載天然不如一個大文件更快,Http鏈接也要時間和資源,有時候AssetBundle其實只有幾KB。不划算。打Zip算比較方便,能夠考慮不帶壓縮打Zip。固然也能夠自定義格式來作,可是合大文件之後更新會麻煩點,要作一些管理和替換。
感謝黃程@UWA問答社區提供了回答
A2:最近恰好作這個功能。將多個包打成Zip,對下載效率有很大的幫助,特別在國外網絡環境下。
1.AssetBundle打包依舊是零散的AssetBundle包(AssetBundle會作模塊區分,好比特效、UI等)。
2.須要熱更新時候,生成的AssetBundle包信息和上個版本AssetBundle包對比,將各個模塊變更的AssetBundle包生成Zip包。
3.熱更新的時候,收集須要更新AssetBundle信息(有標記Zip,說明資源在Zip包裏)進行下載,沒有標記Zip,則直接下載AssetBundle包,這樣兼容跨多個版本熱更新功能。
4.下載完的Zip包在客戶端在解壓成AssetBundle。
感謝楊宇傑@UWA問答社區提供了回答
A3:當個搬運工補充一個回答:
散列的壞處比較集中:下載慢(用cdn,oss後端性能沒必要考慮),上傳到oss也是慢得多。Zip不管跳包管理,下載冗餘,都是很頭疼的事情,作動態下載更加不可能。所以可能致使比散列更加昂貴的oss成本。
感謝芭妮妮@UWA問答社區提供了回答
A4:前期開發用零散文件,文件小也省掉了斷網續傳的問題,後期時間富裕了再擴展爲大包的方式,能夠根據版本號生成增量更新包一次下載完成。
放服務器上沒什麼影響,按期清理一下。
感謝rekcah1986@UWA問答社區提供了回答
A5:上一個項目用的Zip打包,運營時間長了之後,冗餘資源會愈來愈多。熱更資源要保證完整性不能刪,除非大家是換包了,若是大家頻繁換包,那麼用Zip的方式是最合適的。
感謝Lim@UWA問答社區提供了回答,歡迎你們轉至社區交流:
Q:Unity中Api Compatibility Level .NET 4.x與.NET Standard 2.0的區別是什麼呢?
A:.NET Standard 2.0對平臺的支持性更廣、兼容性更好。.NET Standard 2.0的API是.NET 4.x的子集。或者說,.NET 4.x支持的API更多一些,兼容.NET Standard 2.0,可是有些API在有些平臺上是不兼容的。
Unity默認選擇的是.NET Standard 2.0,若是想要跨平臺兼容,那麼就選Standard 2.0。若是使用的外部類庫或者腳本里面調用的API不被Standard 2.0支持,再考慮換成4.x來試試。
以官方文檔爲準:
https://docs.unity3d.com/Manu...
感謝Prin@UWA問答社區提供了回答,歡迎你們轉至社區交流:
Q:在Unity 2020版本下,OpenGL ES3下SRP Batcher失效,查看lit.shader顯示不兼容SRP,該怎麼解決呢?
A:經排查,在Unity 2020.2的某些版本下並無出現上述問題,但後續的版本就壞了。如今看到2020.3.9f1的Release notes裏有提到這個問題。
感謝小ben@UWA問答社區提供了回答,歡迎你們轉至社區交流:
封面圖來源於網絡
今天的分享就到這裏。固然,生有涯而知無涯。在漫漫的開發週期中,您看到的這些問題也許都只是冰山一角,咱們早已在UWA問答網站上準備了更多的技術話題等你一塊兒來探索和分享。歡迎熱愛進步的你加入,也許你的方法恰能解別人的燃眉之急;而他山之「石」,也能攻你之「玉」。
官網:www.uwa4d.com
官方技術博客:blog.uwa4d.com
官方問答社區:answer.uwa4d.com
UWA學堂:edu.uwa4d.com官方技術QQ羣:793972859(原羣已滿員)