如何使此天空盒旋转(统一)?

时间:2018-07-17 18:12:44

标签: c# unity3d animation shader

好吧,我需要使用此skybox着色器,因为它可以实现所需的混合,问题是我还需要旋转它(动画旋转),如此处所述:https://answers.unity.com/questions/651780/rotate-skybox-constantly.html

着色器:

Shader "RenderFX/Skybox Blended" {

 Properties {
     _Tint ("Tint Color", Color) = (.5, .5, .5, .5)
     _Tint1 ("Tint Color one", Color) = (.5, .5, .5, .5)
     _Tint2 ("Tint Color two", Color) = (.5, .5, .5, .5)
     _Blend ("Blend", Range(0.0,1.0)) = 0.5
     _Skybox1 ("Skybox one", Cube) = ""
     _Skybox2 ("Skybox two", Cube) = ""
 }

 SubShader {
     Tags { "Queue" = "Background" }
     Cull Off
     Fog { Mode Off }
     Lighting Off        
     Color [_Tint]
     Pass {
         SetTexture [_Skybox1] { combine texture }
         SetTexture [_Skybox2] { constantColor (0,0,0,[_Blend]) combine texture lerp(constant) previous }
         SetTexture [_Skybox2] { combine previous +- primary, previous * primary }
     }

 }

 Fallback "RenderFX/Skybox", 1
 }

我对Skybox着色器非常陌生,并尝试集成它们的代码,但这只会引起错误。如何在此Skybox上设置旋转动画?

RenderSettings.skybox.SetFloat("_Rotation", Time.time*0.4f);

也不起作用。

1 个答案:

答案 0 :(得分:0)

我通过使用您在结尾处编写的代码行解决了Skybox的此问题,但先对Skybox进行了更改。选择您的Skybox材质,然后在检查器面板中转到“着色器”>“ Skybox”,然后选择“ Skybox / 6 Sided”。如果您的天空盒有立方体贴图材质,则还可以使用“立方体贴图”选项。

Skybox Inspector

代码为:

void Update () {
    RenderSettings.skybox.SetFloat("_Rotation", Time.time * 0.4f);
}
相关问题