码迷,mamicode.com
首页 > 编程语言 > 详细

【unity2D】Light2D-学习记录2-代码控制光照的颜色渐变

时间:2021-04-30 11:54:29      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:资料   spec   NPU   浮点   inspect   component   细节   lob   multi   

目标

如果只改变Light2D的明暗,用light2D.intensity确实会很方便,但如果要改变Light2D的颜色,就需要调整它的Color。在此记录下调整Color时需要注意的细节

思路

调整Color时,使用Color的线性插值+timer实现。

代码相关

using UnityEngine;
using UnityEngine.Experimental.Rendering.Universal;

public class GlobalLightTest : MonoBehaviour
{
	private Light2D light2D;
	private float timer = 0;

	void Start()
	{
		light2D = GetComponent<Light2D>();
	}

	void Update()
	{
		Timer(1f);

		light2D.color = Color.Lerp(Color.white ,new Color(90f/255 , 60f/255 , 0f/255) , timer);//这里特别注意细节

	}

	private void Timer(float _seconds)//传入变化时间
	{
		float _multiple = 1 / _seconds;

		if(Input.GetKey(KeyCode.L) && timer <= 1)
		{
			timer += Time.deltaTime * _multiple;
		}
		else if(timer >= 0)
		{
			timer -= Time.deltaTime * _multiple;
		}
	}
}

注意事项

1.unity中的Color的构造函数是:

public Color (float r, float g, float b, float a);

这意味着我们要传入对应红、绿、蓝、透明度的参数进去。

在Inspector窗口中,我们看到的是这样的:
技术图片
然而查阅unity的API手册,发现我们传入的参数必须在0f和1f之间,不能传0到255之间的数,特别注意这一点。

2.传入的参数必须是浮点型,不能是整形。

最终效果

技术图片

参考资料

unityAPI-ColorConstructor

【unity2D】Light2D-学习记录2-代码控制光照的颜色渐变

标签:资料   spec   NPU   浮点   inspect   component   细节   lob   multi   

原文地址:https://www.cnblogs.com/OtusScops/p/14715438.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!