通过观察材质球中颜色属性改变过程得出规律并进行判断调整数值,实现了颜色渐变功能。 如图,在我们旋转这个白色圆圈时颜色发生了改变,并且R、G、B值会有相应的变化; 以(0,1,1)的颜色开始向右旋转小白圈,我们会发现R、G、B的变化顺序为 -G、+R、-B、+G、-R、+B 并且每次只对R、G、B中的一个元素进行改变。 通过以上规律和特性,进行流程控制判断递增颜色数值即可得到渐变效果;
using UnityEngine;
public Transform A;
public float i=0.01f;
public Color color_ = new Color(0, 1, 1);
void Update(){
if (color_.r == 0 && color_.g > 0 && color_.b == 1)
{
color_.g -= i;
if (color_.g < 0) {
color_.g = 0;
}
}
else if (color_.g == 0 && color_.r < 1 && color_.b == 1)
{
color_.r += i;
if (color_.r > 1)
{
color_.r = 1;
}
}
else if (color_.r == 1 && color_.g == 0 && color_.b > 0)
{
color_.b -= i;
if (color_.b < 0)
{
color_.b = 0;
}
}
else if (color_.b == 0 && color_.r == 1 && color_.g < 1)
{
color_.g += i;
if (color_.g > 1)
{
color_.g = 1;
}
}
else if (color_.r > 0 && color_.g == 1 && color_.b == 0)
{
color_.r -= i;
if (color_.r < 0)
{
color_.r = 0;
}
}
else if (color_.r == 0 && color_.g == 1 && color_.b < 1)
{
color_.b += i;
if (color_.b > 1)
{
color_.b = 1;
}
}
A.transform.GetComponent<Renderer>().material.color = color_;
}
|