Unity3D中的Spot Light颜色淡入淡出

我有一个场景,许多聚光灯聚焦在屏幕上。 都有红色和相同的强度。 我想要的是红色(0,0,0,1)值应该在一段时间内增加和减less的衰落效果。 我想使用Color.Lerp(),但无法实现它。 目前我正在做的是将此脚本附加到SpotLight的所有实例。

void Update() { if(Time.time()%120==0) transform.light.color=new Color(Random.Range(0,255),0,0,1); } 

我知道我在这里错过了一些大事。 帮助表示赞赏。 提前致谢。

问题是在行if(Time.time()%120==0)

通过这样做,您可以将时间戳记除以120,然后比较小数点是否为零。 这种情况很less发生,因为时间戳会有很多不同的值。 你应该做的是每帧计算颜色。 也许这样的事情会做:

 void Update() { transform.light.color=new Color((Mathf.Sin(Time.time()) + 1) / 2,0,0,1); } 

这会随着时间的推移顺利地增加和减less光线。 “魔术”在Mathf中。 Sin ()方法。