Một hộp trời là một hình lập phương được tạo thành từ sáu hình ảnh riêng lẻ tạo ra một nền tảng trời sống động trong một trò chơi. Khi các hình ảnh được thiết kế để hoàn toàn phù hợp với nhau, hộp trời xuất hiện như là một toàn cảnh mà không có cảm giác đang ở bên trong một hình lập phương. Điều này làm cho trò chơi cảm thấy lớn hơn thực tế, và nó thêm chiều sâu vào bầu không khí của bạn, chẳng hạn như mô phỏng không gian sâu hoặc môi trường dưới nước.
Ngoài ra, đối tượng Sky bao gồm các thiên thể như mặt trời, mặt trăng và các ngôi sao mà xuất hiện một cách động, mọc và lặn dựa trên TimeOfDay hoặc ClockTime.
Cuối cùng, đối tượng Sky có thể được sử dụng như một cubemap cho sự phản chiếu trong ViewportFrames. Để biết thêm chi tiết, hãy xem các khung nhìn.
Xây dựng hộp trời
Nếu bạn đã tạo hình ảnh hộp trời của riêng mình, bạn phải nhập chúng vào Roblox trước khi bạn có thể sử dụng chúng trong hộp trời. Mỗi hình ảnh phải được liên kết mượt mà theo tất cả các cạnh của các hình ảnh hàng xóm khi "gấp" vào một hình lập phương.

Để tạo một hộp trời:
Chọn đối tượng Sky mới, sau đó trong cửa sổ Properties, gán một texture cho mỗi thuộc tính trời dưới đây:
- SkyboxBk — Hình vuông mặt sau của hộp trời.
- SkyboxDn — Hình vuông mặt dưới của hộp trời.
- SkyboxFt — Hình vuông mặt trước của hộp trời.
- SkyboxLf — Hình vuông mặt trái của hộp trời.
- SkyboxRt — Hình vuông mặt phải của hộp trời.
- SkyboxUp — Hình vuông mặt trên của hộp trời.

Thiên thể
Theo mặc định, đối tượng Sky bao gồm các thiên thể như mặt trời, mặt trăng và các ngôi sao. Những thiên thể này xuất hiện, mọc và lặn một cách động dựa trên các giá trị thuộc tính TimeOfDay hoặc ClockTime.
Bạn có thể tùy chỉnh các thiên thể thông qua các thuộc tính sau:
- SunTextureId — Thiết lập texture của mặt trời.
- SunAngularSize — Thiết lập kích thước tương đối của mặt trời theo độ.
- MoonTextureId — Thiết lập texture của mặt trăng.
- MoonAngularSize — Thiết lập kích thước tương đối của mặt trăng theo độ.
- StarCount — Thiết lập số lượng các ngôi sao trong hộp trời.
Hướng
Thuộc tính SkyboxOrientation thay đổi hướng của các bề mặt hộp trời. Thuộc tính này nhận một Vector3 của các giá trị độ trong thứ tự thông thường XYZ, nhưng sự quay sẽ được áp dụng đầu tiên quanh trục Y, sau đó là X, và rồi Z để cho phép điều khiển dự đoán đối với các chuyển động phức tạp.
Một cách dễ dàng để lập trình một hoạt hình hướng là xoay quanh trục Y (giữ cho đường chân trời ở mức độ), sau đó nghiêng trục này bằng cách đặt X và Z thành một giá trị cố định. Ví dụ sau, lập trình hoạt hình cho trục Y để quay trong khi giữ một độ nghiêng nhất quán là 30° trên trục X.
local Lighting = game:GetService("Lighting")
local RunService = game:GetService("RunService")
local sky = Lighting:FindFirstChild("Sky")
local ROTATION_SPEED = 5 -- Đơn vị độ mỗi giây
RunService.Heartbeat:Connect(function(deltaTime)
sky.SkyboxOrientation = Vector3.new(
30,
(sky.SkyboxOrientation.Y + ROTATION_SPEED * deltaTime) % 360,
0
)
end)
Lưu ý rằng hướng hộp trời là một tính năng có chi phí thấp mà hoạt động liền mạch trên tất cả các nền tảng và mức độ chất lượng hình ảnh. Do đó, một số ngoại lệ cố ý bao gồm:
- Nếu bầu trời có thể nhìn thấy trong các phản chiếu trong nhà như bề mặt gương qua một cửa sổ mở, thì hình ảnh phản chiếu cụ thể đó sẽ không được xoay. Đạt được điều này sẽ yêu cầu tái tạo tốn kém và xử lý các cubemap mà sẽ ảnh hưởng đáng kể đến hiệu suất và tính khả dụng rộng rãi.
- Chỉ có các bề mặt hộp trời xoay; các thiên thể không bị ảnh hưởng bởi thuộc tính này.
- Nếu bạn sử dụng một Sky bên trong một ViewportFrame, nó sẽ phản chiếu các giá trị toàn cầu SkyboxOrientation. Bạn không thể điều chỉnh góc theo từng ViewportFrame.
- Tính năng đám mây động dưới Terrain không bị ảnh hưởng.
