Unity 3D从一个天空盒褪色到另一个天空盒

问题描述:

我有四个不同的天空盒,每个季节在我的游戏中有一个。Unity 3D从一个天空盒褪色到另一个天空盒

如何在c#中的天空盒之间创建淡入淡出过渡?

因此,例如,在某个时间点,夏季天空盒会渐渐变成秋季天空盒。

谢谢!

你会想在着色器中进行混合,有one on the Unify wiki可以混合两个天空盒。

你需要使用(使用material.SetTexture)时,它的完成他们的2之间的混合脚本来获得混合

+0

之间4.我已经设置了着色器的作用交换了纹理的材料和材质和天空盒融合使用滑块。我如何在我的代码(c#)中编写它,使它逐渐从blend = 0.0动画到blend = 1?我知道你可以使用\t \t \t \t skyboxmaterial.SetFloat(“_ Blend”,blendNumber); 但我需要混合数量在设定的时间内逐渐递增。 –

+0

您可以使用Mathf.Lerp(开始,结束,时间)来获取两个值之间的值,其中时间介于0和1之间。使用它的简单(但技术上是错误的)方式如下所示: 'material .SetFloat(“_ Blend”,Mathf.Lerp(material.GetFloat(“_ Blend”),1,Time.deltaTime));' 但是这样可以让您在开始时快速融合,并在达到之前减速停止1.最好的方法是在本文中阐述:https://chicounity3d.wordpress.com/2014/05/23/how-to-lerp-like-a-pro/ – Rtyper

+0

然后,如果_Blend参数的范围是0到1,你可能不需要Lerp,你可以使用Time.deltaTime自己增加一个计时器变量并使用它。 – Rtyper