制作效果示例:如图登陆画面中,有Text、Image、Button等不同类型的UI。如果仅以达成效果为目的,有许多种做法,比如动画K帧,或者写多个方法分别去控制不同组件。
那在项目中,如何高效、统一地管理它们呢? 我们以图中fade效果为例。
using UnityEngine;
using UnityEngine.UI;
public class UIFade : MonoBehaviour
{
Graphic g;
void Awake()
{
g = GetComponent<Graphic>(); //UI.Graphic 图形基类
}
[ContextMenu("FadeIn")]
void FadeIn()
{
g.GetComponent<CanvasRenderer>().SetAlpha(0f);
g.CrossFadeAlpha(1f, 4f, false);//second param is the time
}
[ContextMenu("FadeOut")]
void Fadeout()
{
g.GetComponent<CanvasRenderer>().SetAlpha(1f);
g.CrossFadeAlpha(0f, 4f, false);
}
}
通过Graphic,可以用一套方法,控制Text,Image等多种不同类型。