1. 程式人生 > >Unity 的 這些坑你遇到了嗎?(一)

Unity 的 這些坑你遇到了嗎?(一)

~~ md5 歷史 clas 史記 轉換 版本 就會 log

為了苦逼的程序員們少加點班,分享一些在項目開發過程中遇到的一些坑

我使用的環境是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 的 這些坑你遇到了嗎?(一)