UGUI 整個界面的淡入淡出效果


 
以前用NGUI做界面,想讓整個界面淡入淡出,可以直接改UIPanel組件的Alpha屬性即可更改整個界面的透明度。那在UGUI中呢?有些同學可能想到了,像Text,Image這些組件都有繼承Graphic類,這個類提供了CrossFadeAlpha()方法,可以做透明度漸變。但如果界面東西多了,要獲取每個Graphic是挺麻煩了。其實還有一個很簡便的方法,用起來跟NGUI差不多。就是CanvasGruop組件,把這個組件放到界面根節點上,對這個組件的alpha做改變就行了。看看官方文檔的解釋,
 
The Canvas Group can be used to control certain aspects of a whole group of UI elements from one place without needing to handle them each individually. The properties of the Canvas Group affect the GameObject it is on as well as all children.
 
是不是很清楚了,這個組件就是管理整個界面下的所有UI元素的,改變這個組件的屬性,比如alpha,底下的所有UI元素的alpha都會跟着改變。所以,在界面節點掛上Canvas Group,然后在腳本里改變Canvas Group的alpha就可以改變整個界面的透明度啦。要漸變?看看我的代碼:
    void TweenShow ()
    {
        //DOTween.To(() => canvasGroup.alpha, x => canvasGroup.alpha = x, 1, 2);
        canvasGroup . DOFade ( 1 , 2 );
    }
我用了DOTween這個插件啦,上面兩句都可以達到同樣的效果,在2秒內把界面的透明度從初始值漸變到1。不得不說,UGUI結合DoTween一起用真是太方便啦!


免責聲明!

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



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