天空盒控制
更改天空盒时间
当玩家站在你的场景中时,你可以改变他们看到天空盒的方式,这也会影响全局光照的色调和方向。
Decentraland 中的天空遵循默认的昼夜循环,完成一次需要 2 小时,因此现实中的每一天会有 12 个完整循环。如果场景没有强制固定时间,那么玩家也可以通过在其界面中调整滑块来切换到某个特定的时段。
当玩家进入一个具有不同时间的场景时,或者场景动态更改时间时,天空盒会在几秒内平滑过渡到这个新值。
固定时间
你可以为你的场景设置一个固定的时间。所有玩家都会以该时间看到场景,天空盒不会跟随昼夜循环变化。
在 Creator Hub 中,打开场景设置并点击 设置 选项卡以找到 天空盒 部分。取消勾选 自动 选项,然后设置你想要的时间。

你也可以在场景代码中设置天空盒时间。为此,请将以下部分添加到你的 scene.json 中在根级别添加以下内容:
这个数字表示从当天开始经过的秒数,范围从 0(表示 00:00)到 86400(表示 24:00)。任何大于 86400 的数字也会被解释为午夜。
以下是一些有效值的更多示例:
0 秒 => 00:00
21600 秒 => 06:00
43200 秒 => 12:00
64800 秒 => 18:00
86400 秒 => 24:00
读取时间
你可以在场景代码中使用以下方式读取时间: getWorldTime() 函数。
该函数返回 0 到 86400 之间的一个数字,其中 0 表示午夜,86400 表示 24:00。如果场景动态更改时间,或者玩家在界面中更改时间,该值会更新。否则,它返回相对于默认昼夜循环的值。
动态更改时间
你可以使用以下方式动态更改时间: SkyboxTime 组件。此组件只能添加到场景的根实体 engine.RootEntity.
该 fixed_time 属性是 0 到 86400 之间的数字,其中 0 表示午夜,86400 表示 24:00。任何大于 86400 的数字也会被解释为午夜。
每当添加、移除此组件,或者 fixed_time 属性发生更改时,天空盒时间会在几秒内平滑过渡到这个新值。玩家进入或离开场景时也会发生同样的情况。当天空盒时间被固定时,天空盒将不再跟随其昼夜循环进度,玩家也无法通过界面更改时间。
默认情况下,过渡始终朝前进行,但你可以通过设置以下内容来更改: transitionMode 属性设为 TransitionMode.TM_FORWARD 或 TransitionMode.TM_BACKWARD.
最后更新于