unity使用CanvasGroup实现渐隐渐显

unity使用CanvasGroup实现渐隐渐显,第1张

using UnityEngine;

//渐隐渐显

public class Fade : MonoBehaviour

{

    public float fadeSpeed = 0.05f;//渐隐渐显速度

    public bool onTirgger = false;

    public bool offTirgger = false;

    public CanvasGroup panle;//需要渐隐渐显的面板

    public void OnTirgger()//可以通过button调用此方法开始渐显

    {

        onTirgger = true;

        offTirgger = false;

    }

    public void OffTirgger()//开始渐隐

    {

        offTirgger = true;

        onTirgger = false;

    }

    public void FadeToHide()

    {

        panle.alpha -= fadeSpeed;

        panle.blocksRaycasts = false;

        panle.interactable = false;

        if (panle.alpha <= 0f)

        {

            offTirgger = false;

        }

    }

    public void FadeToShow()

    {

        panle.alpha += fadeSpeed;

        panle.blocksRaycasts = true;

        panle.interactable = true;

        if (panle.alpha >= 1f)

        {

            onTirgger = false;

        }

    }

    void Start()

    {

        //如果需要将脚本挂载在别的地方请注释掉这一行,将需要渐隐的面板拖拽到panle

        panle = this.GetComponent();

    }

    void Update()

    {

        if (onTirgger == true)

        {

            FadeToShow();

        }

        if (offTirgger == true)

        {

            FadeToHide();

        }

        if (onTirgger == true && offTirgger == true)//出现异常解决方法

        {

            FadeToHide();

        }

    }

}

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/758497.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-01
下一篇2022-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存