unity指定游戏对象淡入淡出

using System.Collections;
using UnityEngine;
using UnityEngine.UI;

public class FadeInOut : MonoBehaviour
{
    
    
    public CanvasGroup canvasGroup; // 用于控制的 Canvas Group
    public float fadeDuration = 1.0f; // 淡入淡出的时间

    private void Start()
    {
    
    
        if (canvasGroup == null)
        {
    
    
            canvasGroup = GetComponent<CanvasGroup>();
        }

        // 初始设置为完全透明
        canvasGroup.alpha = 0;
        FadeIn();
    }

    public void FadeIn()
    {
    
    
        StartCoroutine(Fade(canvasGroup, 1, fadeDuration));
    }

    public void FadeOut()
    {
    
    
        StartCoroutine(Fade(canvasGroup, 0, fadeDuration));
    }

    private IEnumerator Fade(CanvasGroup cg, float targetAlpha, float duration)
    {
    
    
        float time = 0;
        float startAlpha = cg.alpha;
        while (time < duration)
        {
    
    
            cg.alpha = Mathf.Lerp(startAlpha, targetAlpha, time / duration);
            time += Time.deltaTime;
            yield return null;
        }
        cg.alpha = targetAlpha;
    }
}

猜你喜欢

转载自blog.csdn.net/weixin_52051554/article/details/142355933