原创 【填坑】Unity2018 UGUI Prefab 打開後亂掉???

前言 在用Unity2018的時候,新的Prefab的特性在帶來方便的同時,也會造成有很多困擾。比如有的修改(更改UI元素的層級、刪除某個UI元素)一定要打開Prefab之後才能使用。 同時,對於一些UI的Prefab,發現在遊戲中是正常

原创 【填坑】Unity 2018 開DeepProfile之後直接卡死?

這幾天遇到的,開了DeepProfile之後,編輯器光速卡死,動不了一下。然後只要把編輯器一關掉就萬事大吉了,真™靈異! 後來經過排查:在Profile窗口裏找到以下這個東西: 然後按那個叉把它幹掉就OK了,一下效率就高起來了。 不過不

原创 Unity 2018 對Excel (xlsx)的讀寫(EPPlus)

前言 之前5.6.x用過EPPlus的對Excel 的讀寫,其實也是網上找的一個教程,但是現在又突然找不到了。後來升級到2018.3.5的時候,突然這個插件就涼了。 排查之後發現,之前的EPPlus用的是.Net 3.5 的框架,而Uni

原创 Unity熱更方案 ILRuntime 和 toLua的比較

前言 目前市面上流行的熱更方案就是lua系列和ILRuntime,選取哪一種需要根據自己的項目進行比對。 無論是ILRuntime還是toLua都是市面上有在用到的熱更方案。直觀上來講,都可以通過把代碼放在StreamingAssets中

原创 Unity UGUI優化:解決EventSystem耗時過長的問題 第三部分

前言 之前寫了兩部分關於EventSystem的優化,但是後面項目需求上還不夠,還要繼續(畢竟優化沒有止境)。所以今天開始第三次對EventSystem的優化。 本次優化的是在前兩部分的前提下開展的,所以如果沒有進行過前兩部分的優化需要補

原创 Unity3D插件 Doozy UI 學習(二):與DoozyUI的事件傳遞

前言 爲了能讓DoozyUI與項目本身可以兼容,至少需要做到以下兩點: 1、通過DoozyUI 觸發一個自定義的事件(比如通過點擊按鈕來開始遊戲)。 2、通過其他模塊的事件來觸發DoozyUI(比如遊戲失敗彈出提示框)。 所以需要我們做的

原创 Unity3D插件 Doozy UI 學習(一):打開一個面板

前言: Doozy UI是一款很不錯的UI插件,裏面有一整套UI視圖層的框架,非常好用。而且他還有很多現成的炫酷動效,比起自己造輪子自然是方便了很多。 之前在買Unity Plus的時候官方送了一套,所以抱着“既然送了就學來用反正也不虧”

原创 Unity+GME 騰訊新版的遊戲語音(遊戲多媒體引擎)

前言: 之前用的GCloudVoice,一個很坑的SDK。後來用着用着突然發現不能用了,神奇!然後去登錄控制檯一查,發現騰訊把這個東西的相關網頁從騰訊雲平臺上刪除了。現在只能在百度上面搜到他的原始網頁,不過這些也不重要了,只要知道現在就用

原创 【Unity3D】【UGUI】 關於 LocalScale 和FillAmount的性能問題

通常我們在製作血條的時候,會被血條的填充圖片(Image)設置成如下圖所示: 通過調整FillAmount來改變血條的填充。 除此之外,還有另外一種方法,那就是更改transform.localScale字段。這種情況,我們就會把血條的

原创 Unity3D UGUI 優化:Font.CacheFontForText

前言: 最近在做項目優化的時候,有個東西非常耗時,就是Font.CacheFontForText。在真機上測出來的Profile簡直嚇人,幾十、幾百、上千毫秒都有可能。 所以這是一個必須優化的點,也是一個很那難的點。因爲他的API等東西,

原创 關於 Unity 的 GetComponent 函數所產生的GC問題

前言: 最近的項目優化GC,其中看到關於GetComponent的GC消耗非常之大,看起來很嚇人。那麼這個GC到底是怎麼來的?又如何避免呢?   正文: 1、GetComponent 的GC來源 有一篇Unity的官方博客:《Custom

原创 Unity UGUI優化:解決EventSystem耗時過長的問題 第二部分

前言: 上回說到,優化了一下GraphicRaycaster.get_eventCamera()等方法的調用,使其有了明顯的耗時下降。但實際上還是不夠的:Graphic.get_canvasRenderer()、Graphic.get_d

原创 Unity UGUI優化:解決EventSystem耗時過長的問題

前言: 最近項目一直在做優化,然後發現Unity的其中一個大坑,關於EventSystem的。當玩家在連續操作屏幕的時候,就會觸發EventSystem.Update() -->....-->EventSystem.RaycastAll(

原创 Unity/ C#:優化字符串操作產生的GC【Using ZString】

前言: 最近被要求改關於字符串操作中的GC,比如:數字轉文本、字符串拼接等。一般來講有的可以避免,但有的很難避免。比如Number To String的操作,總歸是寫在邏輯的硬需求裏面的(等級、時間、飄血等)。 如上圖所示,這個是Int

原创 Unity3D :關於UGUI的網格重建、動靜分離

前言: 無論是網上的攻略還是以前的經驗來說,都說UGUI需要進行動靜分離。也就是說同一個界面下的UI,可活動的元素放在一個Canvas下,不可活動的元素放在另一個Canvas下。雖然兩個Canvas打斷了合批,但是卻減少了網格的重建時間,