Skybox to sześcian składający się z sześciu indywidualnych obrazów, które tworzą immersywne tło nieba w grze. Gdy obrazy są zaprojektowane, aby były idealnie dopasowane do siebie, skybox wydaje się panoramiczny, bez wrażenia przebywania wewnątrz sześcianu. To sprawia, że gry wydają się większe, niż są w rzeczywistości, i dodaje głębi do Twojej atmosfery, na przykład symulując głęboki kosmos lub podwodne środowiska.
Dodatkowo, obiekt Sky zawiera ciała niebieskie, takie jak słońce, księżyc i gwiazdy, które dynamicznie pojawiają się, wschodzą i zachodzą w zależności od wartości właściwości TimeOfDay lub ClockTime.
Na koniec obiekt Sky może być używany jako sześcian dla odbić w ViewportFrames. Po szczegóły zobacz ramki viewport.
Budowa skyboxu
Jeśli stworzyłeś własne obrazy skyboxu, musisz najpierw je zaimportować do Roblox, zanim będziesz mógł ich użyć w skyboxie. Każdy obraz musi być bezszwowy na wszystkich krawędziach sąsiednich obrazów, gdy jest "złożony" w sześcian.

Aby utworzyć skybox:
Wybierz nowy obiekt Sky, a następnie w oknie Właściwości przypisz teksturę do każdej z poniższych właściwości nieba:
- SkyboxBk — Kwadrat tylny skyboxu.
- SkyboxDn — Kwadrat dolny skyboxu.
- SkyboxFt — Kwadrat przedni skyboxu.
- SkyboxLf — Kwadrat lewy skyboxu.
- SkyboxRt — Kwadrat prawy skyboxu.
- SkyboxUp — Kwadrat górny skyboxu.

Ciała niebieskie
Domyślnie obiekt Sky zawiera ciała niebieskie, takie jak słońce, księżyc i gwiazdy. Te ciała dynamicznie pojawiają się, wschodzą i zachodzą w zależności od wartości właściwości TimeOfDay lub ClockTime.
Możesz dostosować ciała niebieskie za pomocą następujących właściwości:
- SunTextureId — Ustala teksturę słońca.
- SunAngularSize — Ustala względny rozmiar słońca w stopniach.
- MoonTextureId — Ustala teksturę księżyca.
- MoonAngularSize — Ustala względny rozmiar księżyca w stopniach.
- StarCount — Ustala liczbę gwiazd w skyboxie.
Orientacja
Właściwość SkyboxOrientation zmienia orientację powierzchni skyboxu. Właściwość ta przyjmuje Vector3 wartości kątów w typowym porządku XYZ, ale obrót jest stosowany najpierw wokół osi Y, następnie X, a na końcu Z, aby umożliwić przewidywalną kontrolę nad złożonymi ruchami.
Łatwym sposobem na zaprogramowanie animacji orientacji jest obrót wokół osi Y (utrzymując poziom horyzontu), a następnie przechylenie tej osi, ustawiając X i Z na stałą wartość. Następujący skrypt, na przykład, animuje oś Y dla obrotu, podczas gdy utrzymuje stałe nachylenie 30° na osi X.
local Lighting = game:GetService("Lighting")
local RunService = game:GetService("RunService")
local sky = Lighting:FindFirstChild("Sky")
local ROTATION_SPEED = 5 -- W stopniach na sekundę
RunService.Heartbeat:Connect(function(deltaTime)
sky.SkyboxOrientation = Vector3.new(
30,
(sky.SkyboxOrientation.Y + ROTATION_SPEED * deltaTime) % 360,
0
)
end)
Należy pamiętać, że orientacja skyboxu jest funkcją o niskim koszcie, która działa bezproblemowo na wszystkich platformach i poziomach jakości wizualnej. W rezultacie niektóre celowe wyjątki obejmują:
- Jeśli niebo jest widoczne w odbiciach wewnętrznych, takich jak powierzchnia lustra przez otwarte okno, to konkretne odzwierciedlone widok nie będzie obracane. Osiągnięcie tego wymagałoby kosztownego ponownego renderowania i konwolucji sześcianów, co znacznie wpłynęłoby na wydajność i szeroką dostępność.
- Tylko powierzchnie skyboxu się obracają; ciała niebieskie nie są dotknięte przez tę właściwość.
- Jeśli używasz Sky w ViewportFrame, to odzwierciedli globalne wartości SkyboxOrientation. Nie możesz dostosować kąta dla ViewportFrame.
- Funkcja dynamicznych chmur w ramach Terrain nie jest w nią zaangażowana.
