有没有办法随时间改变材料的颜色?我希望我的2D游戏的背景在一个漂亮的平滑过渡中从白色变为红色。
在Unity 5中,您可以设置“Albedo”颜色。这是我想要改变的属性。我可以通过使用这个来做到这一点:
back.SetColor("_Color", new Color(255, 0, 0, 0.5f));
然而,颜色如何缓慢变化而不是如此瞬间?
答案 0 :(得分:0)
未经测试,但请尝试这种方式:
var threshold = 0.001f;
var speed = 5.0f;
function Start()
{
// Execution
StartCoroutine("ChangeToColor", new Color(1.0f, 0f, 0f));
}
IEnumerator ChangeToColor(Color newColor)
{
var getColor = back.GetColor("_Color");
while(((Vector4)getColor - (Vector4)newColor).magnitude < threshold)
{
back.SetColor("_Color", Vector4.Lerp(getColor, newColor, Time.deltaTime * speed));
yield return null;
}
}