一個 天空盒 是由六個獨立的圖片組成的立方體,在遊戲中創造出身臨其境的天空背景。當這些圖片被設計得完美對齊時,天空盒看起來像全景,沒有置身立方體內的印象。這使得遊戲感覺比實際上更大,並且增添了氛圍的深度,例如模擬深空或水下環境。
此外,Sky 物件包括如太陽、月亮和星星等天體,這些天體根據 TimeOfDay 或 ClockTime 動態出現、上升和落下。
最後,Sky 物件可以用作 ViewportFrames 中的立方體貼圖以反射。詳情請參見 視口框架。
天空盒構建
如果您已經創建了自己的天空盒圖片,您必須先將它們 導入 到 Roblox,然後才能在天空盒中使用它們。每個圖片在折疊成立方體時,必須在所有相鄰圖片的邊緣上無縫連接。

要創建天空盒:
選擇新的 Sky 物件,然後在 Properties 窗口中,為以下每個天空屬性分配紋理:
- 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 -- 每秒度數
RunService.Heartbeat:Connect(function(deltaTime)
sky.SkyboxOrientation = Vector3.new(
30,
(sky.SkyboxOrientation.Y + ROTATION_SPEED * deltaTime) % 360,
0
)
end)
請注意,天空盒方向是一個低成本的特性,它在所有平台和視覺質量級別上都能無縫運作。結果,一些有意的例外包括:
- 如果天空在室內反射中可見,例如通過開放窗戶的鏡面,該特定反射視圖將不會旋轉。要實現這一點需要昂貴的重新渲染和卷積立方體貼圖,這將顯著影響性能和廣泛的可用性。
- 只有天空盒表面會旋轉;天體 不受此屬性影響。
