unity3D如何设计一个昼夜循环效果?

unity3D如何设计一个昼夜循环效果?,第1张

装备两个相机分别挂上不同的天空盒,然后把两个相机作为一个空物体的子物体,在空物体上挂上脚本,声明一个布尔型变量isTrue

if(GUI.Toggle(new Rect(200,200,50,50),isTrue,"",)){

isTrue=true Transform.Find("camera1").GetComponent().enabled=true

Transform.Find("camera2").GetComponent().enabled=false

}

else {

isTrue=false

Transform.Find("camera1").GetComponent().enabled=false

Transform.Find("camera2").GetComponent().enabled=true

}

然后你也可以在GUISkin改一下Toggle的样式,我的思路大致是这样,细节部分你自己再弄一下吧,我也没试,还可以建立两套灯光,也用类似的方法,一个开的时候另一个关上

这个有几个方法:

1. 做几个Skybox,然后一定时机切换。比如:

function SetSkyLight() {

    if (daytime) {

        RenderSettings.skybox = daySky

        skyLight.color = dayColor

    }

    else {

        RenderSettings.skybox = nightSky

        skyLight.color = nightColor

    }

}

2. 写 Shader 来控制天空贴图的混合

3. 做个方向光,是主光源,用来模拟太阳,然后旋转整个场景或方向光,相当于旋转地球。

4. 用插件,比如 time of day 插件,日夜交替、大气散射、云雾变化、天气系统、日月光照,这些都有。Unity 5 之后的案例工程也有展示日夜轮换的内容。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12038620.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存