Unity 的 這些坑你遇到了嗎?(一)
為了苦逼的程序員們少加點班,分享一些在項目開發過程中遇到的一些坑
我使用的環境是unity 5.6.3p3 版本管理是 git
(1) 雖然大家都知道 unity 用的序列化方式是 yaml(讀音90% 的會讀錯~~!),但是unity 基於yaml 有三種方式,文本方式 二進制方式 和混合模式
它坑在哪個地方呢? 兩者互相轉換的時候,不是完全可逆的,git 會識別出來,文本轉二進制 ,然後二進制轉文本 ,會多了一些yaml的版本號描述(別說我挑剔,我這就是這樣的人~~!)
(2)unity 5 兩次對相同的資源打包,出來的assetbundle 是不一樣的(unity很早官方已經知道啦,但就是不願意改,從沒有見過如此厚顏無恥的引擎,一線的開發人員總給你擦屁股....),怎麽辦呢? 自己通過生成出來的manifest 分析依賴文件自身的md5,如果unity 自己擅自把assetbundle 重新生成啦,一旦發現,拒絕提交版本庫
(3)材質球A,用shader B ,材質球 引用了貼圖C,然後A 換shader,從B換成C,C 上用了新的貼圖D,你在查看A的引用的時候,你會發現A引用的 C 和D,unity 有神奇的記憶功能,unity會記住你在材質球上的歷史記錄,這會導致你的assetbundle 非常大
(4)unity 很多的時候,自作聰明,新建一個粒子,會指認默認的材質球,而且材質球用的是standardShaer(移動平臺從來不用的shader),一旦疏漏 standardShader,assetbundle 的大小會變大
(5)這是我一個同事說的:LOD level 如果在shader 裏面沒有實現,在給shader 切換LOD的時候,unity 在手機上就會崩潰
時間太晚了,就寫到這裏啦,以後還會持續更新
ps:(百度遊戲的sdk,在點擊浮窗的時候,會暗地裏面的改手機的分辨率,有些手機就直接崩潰啦,太陰險啦,程序員不要為難程序員)
Unity 的 這些坑你遇到了嗎?(一)