一个 天空盒 是由六张单独的图像组成的立方体,在游戏中创建沉浸式的天空背景。当图像设计得彼此完美对齐时,天空盒看起来就像是全景的,而不会给人置身于立方体内的印象。这使得游戏的感觉比实际要大,并为您的氛围增添深度,比如模拟深空或水下环境。
此外,Sky 对象包括日、月和星星等天体,这些天体会根据 TimeOfDay 或 ClockTime 动态出现、升起和落下。
最后,Sky 对象可用作 ViewportFrames 中反射的立方图。有关详细信息,请参见 视口框架。
天空盒构建
如果您创建了自己的天空盒图像,您必须先 导入 这些图像到 Roblox,才能在天空盒中使用它们。每张图像在“折叠”成立方体时必须在相邻图像的 所有边缘 无缝连接。

要创建一个天空盒:
选择新的 Sky 对象,然后在 属性 窗口中,分别为以下天空属性分配一个纹理:
- SkyboxBk — 天空盒的 后 方块。
- SkyboxDn — 天空盒的 下 方块。
- SkyboxFt — 天空盒的 前 方块。
- SkyboxLf — 天空盒的 左 方块。
- SkyboxRt — 天空盒的 右 方块。
- SkyboxUp — 天空盒的 上 方块。

天体
默认情况下,Sky 对象包括日、月和星星等天体。这些天体会根据 TimeOfDay 或 ClockTime 属性值动态出现、升起和落下。
您可以通过以下属性自定义天体:
- SunTextureId — 设置太阳的纹理。
- SunAngularSize — 设置太阳的相对大小(以度为单位)。
- MoonTextureId — 设置月球的纹理。
- MoonAngularSize — 设置月球的相对大小(以度为单位)。
- StarCount — 设置天空盒中的星星数量。
方向
SkyboxOrientation 属性更改天空盒表面的方向。该属性接受一个 Vector3 的度数值,排列顺序为典型的 XYZ,但旋转 首先 应用在 Y 轴上,然后是 X,最后是 Z,以便对复杂的运动进行可预测的控制。
一种简单的脚本动画方向的方法是围绕 Y 轴旋转(保持地平线水平),然后通过设置 X 和 Z 为一个固定值来倾斜这个轴。例如,以下脚本使 Y 轴旋转,同时在 X 轴上保持一致的 30° 倾斜。
local Lighting = game:GetService("Lighting")
local RunService = game:GetService("RunService")
local sky = Lighting:FindFirstChild("Sky")
local ROTATION_SPEED = 5 -- 每秒旋转 5 度
RunService.Heartbeat:Connect(function(deltaTime)
sky.SkyboxOrientation = Vector3.new(
30,
(sky.SkyboxOrientation.Y + ROTATION_SPEED * deltaTime) % 360,
0
)
end)
请注意,天空盒方向是一个低成本特性,它在所有平台和视觉质量级别上都能无缝工作。因此,一些故意的例外包括:
- 如果天空在室内反射中可见,例如从打开的窗户透过镜面表面反射的天空,则该特定的反射视图不会旋转。实现这一点将需要昂贵的重新渲染和立方图卷积,这会显著影响性能和广泛可用性。
- 只有天空盒表面会旋转;天体 不受此属性影响。
