代码之家  ›  专栏  ›  技术社区  ›  blue

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

  •  0
  • blue  · 技术社区  · 6 年前

    好的,我需要使用这个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着色器很陌生,并尝试集成它们的代码,但它只是画出了错误。如何在这个天空盒上设置旋转动画?

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

    也不起作用。

    1 回复  |  直到 6 年前
        1
  •  0
  •   Suraj Rao Raas Masood    6 年前

    我用skybox解决了这个问题,使用的是你在结尾处编写的代码行,但首先对skybox进行了更改。选择skybox材质,然后在“检查器”面板中转到“Shader”>“skybox”并选择“skybox/6 Sided”。如果你的skybox有一个cubemap材质,你也可以使用“cubemap”选项。

    Skybox Inspector

    代码是:

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