1
我有四個不同的天空盒,每個季節在我的遊戲中有一個。Unity 3D從一個天空盒褪色到另一個天空盒
如何在c#中的天空盒之間創建淡入淡出過渡?
因此,例如,在某個時間點,夏季天空盒會漸漸變成秋季天空盒。
謝謝!
我有四個不同的天空盒,每個季節在我的遊戲中有一個。Unity 3D從一個天空盒褪色到另一個天空盒
如何在c#中的天空盒之間創建淡入淡出過渡?
因此,例如,在某個時間點,夏季天空盒會漸漸變成秋季天空盒。
謝謝!
你會想在着色器中進行混合,有one on the Unify wiki可以混合兩個天空盒。
你需要使用(使用material.SetTexture)時,它的完成他們的2之間的混合腳本來獲得混合
之間4.我已經設置了着色器的作用交換了紋理的材料和材質和天空盒融合使用滑塊。我如何在我的代碼(c#)中編寫它,使它逐漸從blend = 0.0動畫到blend = 1?我知道你可以使用\t \t \t \t skyboxmaterial.SetFloat(「_ Blend」,blendNumber); 但我需要混合數量在設定的時間內逐漸遞增。 –
您可以使用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
然後,如果_Blend參數的範圍是0到1,你可能不需要Lerp,你可以使用Time.deltaTime自己增加一個計時器變量並使用它。 – Rtyper