UGUI的CanvasGroup性能測試


  目前游戲中的UI使用了UGUI,開始的時候沒有做二次封裝,所以做界面的時候就用了偷懶的辦法,使用CanvasGroup的Alpha來控制界面的開啟和關閉,看起來也沒啥區別。但是心里總有點擔心,畢竟界面沒有SetActive(false),由於沒看UGUI底層的代碼,不知道性能的差距,今天正好做到這里,就進行了一下測試。

  先說說測試用例:100個物體上掛了CanvasGroup和Image,它們每個下面又有5個Image(Image都是半透明的圖片),然后隔一段時間控制物體上CanvasGroup.Alpha的數值,跟隔一段時間控制物體的Active做幀數比較。

  比較結果如下:

  alpha=1時:

  

 

  alpha=0時:

  

  active=true時:

  

  active=false時:

  

 

  由上可以看出,這兩種方式在界面全部關閉時,性能幾乎沒有差距,而且控制alpha的方式還避免了切換時調用Activate/Deactivate的開銷,同時提供了界面fade的功能。

  第二步測試是針對Blur Behind這個插件的,插件提供了UI上的模糊背景功能,而且開銷相對來說比較小,非常值得使用。(資源官方地址:https://www.assetstore.unity3d.com/cn/#!/content/44686)下面就要測試兩種界面關閉的方式在界面上使用插件情況下的性能。(界面開啟時就不貼圖了)

  active=false時:

  

  

   alpha=0時:

  

 

  可以看出幀數也沒有區別,所以可知CanvasGroup在alpha為0時,其下的元素都是不參與繪制的。

  值得一提的是插件在UI重疊時並沒有帶來額外的開銷,這點對於UI復雜的游戲是非常友好的。

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM