天空盒

*此内容使用人工智能(Beta)翻译,可能包含错误。若要查看英文页面,请点按 此处

一个 天空盒 是由六张单独的图像组成的立方体,在游戏中创建沉浸式的天空背景。当图像设计得彼此完美对齐时,天空盒看起来就像是全景的,而不会给人置身于立方体内的印象。这使得游戏的感觉比实际要大,并为您的氛围增添深度,比如模拟深空或水下环境。

此外,Sky 对象包括日、月和星星等天体,这些天体会根据 TimeOfDayClockTime 动态出现、升起和落下。

最后,Sky 对象可用作 ViewportFrames 中反射的立方图。有关详细信息,请参见 视口框架

天空盒构建

如果您创建了自己的天空盒图像,您必须先 导入 这些图像到 Roblox,才能在天空盒中使用它们。每张图像在“折叠”成立方体时必须在相邻图像的 所有边缘 无缝连接。


要创建一个天空盒:

  1. 资源管理器 窗口中,将一个 Sky 对象插入到 Lighting 服务中。

  2. 选择新的 Sky 对象,然后在 属性 窗口中,分别为以下天空属性分配一个纹理:

    • SkyboxBk — 天空盒的 方块。
    • SkyboxDn — 天空盒的 方块。
    • SkyboxFt — 天空盒的 方块。
    • SkyboxLf — 天空盒的 方块。
    • SkyboxRt — 天空盒的 方块。
    • SkyboxUp — 天空盒的 方块。

天体

默认情况下,Sky 对象包括日、月和星星等天体。这些天体会根据 TimeOfDayClockTime 属性值动态出现、升起和落下。

您可以通过以下属性自定义天体:

方向

SkyboxOrientation 属性更改天空盒表面的方向。该属性接受一个 Vector3 的度数值,排列顺序为典型的 XYZ,但旋转 首先 应用在 Y 轴上,然后是 X,最后是 Z,以便对复杂的运动进行可预测的控制。

一种简单的脚本动画方向的方法是围绕 Y 轴旋转(保持地平线水平),然后通过设置 XZ 为一个固定值来倾斜这个轴。例如,以下脚本使 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)

请注意,天空盒方向是一个低成本特性,它在所有平台和视觉质量级别上都能无缝工作。因此,一些故意的例外包括:

  • 如果天空在室内反射中可见,例如从打开的窗户透过镜面表面反射的天空,则该特定的反射视图不会旋转。实现这一点将需要昂贵的重新渲染和立方图卷积,这会显著影响性能和广泛可用性。
  • 只有天空盒表面会旋转;天体 不受此属性影响。
  • 如果您在 ViewportFrame 内使用 Sky,它将反射全局的 SkyboxOrientation 值。您无法为每个 ViewportFrame 调整角度。
  • Terrain 下的 动态云 特性不受影响。
©2026 Roblox Corporation、Roblox、Roblox 标志及 Powering Imagination 是我们在美国及其他国家或地区的注册与未注册商标。