public Text text;
Animator animator;
Color changeColor;
bool hasRun = false;
private void Start()
{
animator = GetComponent<Animator>();
changeColor = text.color;
}
void Update()
{
AnimatorStateInfo info = animator.GetCurrentAnimatorStateInfo(0);
// 动画结束
if (info.normalizedTime >= 1.0f && !hasRun)
{
StartFadeIn();
}
}
public void StartFadeIn()
{
// 使用协程实现渐显效果
StartCoroutine(FadeIn());
}
IEnumerator FadeIn()
{
float duration = 2f; // 渐显持续时间
float elapsedTime = 0f;
while (elapsedTime < duration)
{
// 根据时间增加透明度
changeColor.a = Mathf.Lerp(0f, 1f, elapsedTime / duration);
text.color = changeColor;
elapsedTime += Time.deltaTime;
yield return null;
}
Debug.Log(text.color);
hasRun = true;
// 确保透明度最终为1
changeColor.a = 1f;
text.color = changeColor;
}
Unity 在动画完成后调用脚本调整UI Text文字透明度,到达渐显效果
最新推荐文章于 2024-08-09 16:29:12 发布