ColorCtr控制颜色渐变

Posted xiaolang0

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ColorCtr控制颜色渐变相关的知识,希望对你有一定的参考价值。

ColorCtr控制颜色渐变

   public class ColorCtr : MonoBehaviour

    {

        public static global_color Instance;         //方便外部调用

        public float speed = 1F;             //定义速度

        public GameObject goRawImage;            //定义遮挡Object

        private RawImage _image;              //定义遮挡图片

        private bool _toClear = true;            //定义变亮bool

        private bool _toBlack = false;           //定义变暗bool

                  //初始化

        void Awake()

        {

                      //调用实例

            Instance = this;

                      //判断是否有遮挡物、找到遮挡图片

            if (goRawImage)

            {

                _image = goRawImage.GetComponent<RawImage>();

            }

        }

                  //外部调用,改变bool变亮

        public void setToClear()

        {

            _toClear = true;

            _toBlack = false;

        }

                  //外部调用,改变bool变暗

        public void setToBlack()

        {

            _toClear = false;

            _toBlack = true;

        }

                  //改变颜色插值变亮方法

        private void FadeToClear()

        {

            _image.color = Color.Lerp(_image.color, Color.clear, speed*Time.deltaTime);

        }

                  //改变颜色插值变暗方法

        private void FadeToBlack()

        {

            _image.color = Color.Lerp(_image.color, Color.black, speed * Time.deltaTime);

        }

                  //变亮方法的具体实现

        private void SceneToClear()

        {

                      //调用改变颜色变亮插值

            FadeToClear();

                      //颜色彻底改变

            if (_image.color.a <= 0.05)

            {

                _image.color = Color.clear;

                _image.enabled = false;

                _toClear = false;

            }

        }

                  //变暗方法的具体实现

        private void SceneToBlack()

        {

                       //打开image

            _image.enabled = true;

                       //调用改变颜色变暗插值

            FadeToBlack();

                     //颜色彻底改变

            if (_image.color.a >= 0.95)

            {

                _image.color = Color.black;

                _toClear = false;

            }

        }

                  //时刻检测bool变量是否改变,调用方法

        void Update()

        {

            if (_toClear)

            {       

                                      //调用变亮方法

                SceneToClear();

            }

            else if (_toBlack)

            {

                                      //调用变暗方法

                SceneToBlack();

            }

        }

}

注:需要有 goRawImage遮挡物、_image遮挡图片,通过调用setToClear和setToBlack方法具体实现、、、

以上是关于ColorCtr控制颜色渐变的主要内容,如果未能解决你的问题,请参考以下文章

如何在视图控制器的多个视图中添加多个渐变颜色

maya渐变着色器怎么用

分段控制中的渐变色调颜色

Flutter 颜色渐变及模仿淘宝渐变关注按钮

如何用渐变颜色的控制点填充贝塞尔路径

求单片机控制rgb灯颜色渐变的代码。控制一个灯就行。颜色要都包括。