Lighting

Hiển Thị Bản Đã Lỗi Thời

*Nội dung này được dịch bằng AI (Beta) và có thể có lỗi. Để xem trang này bằng tiếng Anh, hãy nhấp vào đây.

Không Thể Tạo
Dịch Vụ

Dịch vụ Chiếu sáng kiểm soát ánh sáng toàn cầu trong một trải nghiệm. Nó bao gồm một loạt các thuộc tính điều chỉnh bạn có thể sử dụng để thay đổi cách ánh sáng xuất hiện và tương tác với các thống kê khác, như được mô tả trong Tính chất Ánh sáng.

Lighting cũng có thể chứa một Atmosphere đối tượng để tạo ra các hiệu ứng khí quyển thực tế, bao gồm độ dày của hạt, mây, bóng tối và màu. Voir Hiệu ứng khí quyển để biết thêm chi tiết.

Ngoài ra, Lighting (cùng với Workspace.CurrentCamera ) có thể chứa các hiệu ứng post-Processing như SunRaysEffect và 1> Class.BlurEffect1>. Tham khảo 4> Effects post-Processing4> để biết thêm thông tin.

Mẫu mã

Day/Night Cycle

local Lighting = game:GetService("Lighting")
local TIME_SPEED = 60 -- 1 min = 1 hour
local START_TIME = 9 -- 9am
local minutesAfterMidnight = START_TIME * 60
local waitTime = 60 / TIME_SPEED
while true do
minutesAfterMidnight = minutesAfterMidnight + 1
Lighting:SetMinutesAfterMidnight(minutesAfterMidnight)
task.wait(waitTime)
end

Tóm Tắt

Thuộc Tính

  • Đọc Song Song

    Độ sáng được ứng dụng cho các khu vực bị che khỏi tầm mắt, chẳng hạn như các khu vực bên trong.

  • Đọc Song Song

    Độ sáng của nơi địa điểm.

  • Không Sao Chép
    Đọc Song Song

    Một biểu tượng số (trong giờ) của thời gian hiện tại của ngày được sử dụng bởi Lighting .

  • Đọc Song Song

    Màu được diễn tả bằng ánh sáng phản chiếu trên các bề mặt ngược lại so với những bề mặt hướng mặt trời hoặc mặt trăng.

  • Đọc Song Song

    Màu được diễn tả bằng ánh sáng phản chiếu từ bề mặt hướng mặt trời hoặc mặt trăng.

  • Ánh sáng môi trường được tạo ra từ môi trường.

  • Ánh sáng phản xạ từ môi trường.

  • Giá trị bù trừ khiếu nhiễm.

  • Đọc Song Song

    Một giá trị Color3 cho màu của Lighting sương mù.

  • Đọc Song Song

    Độ sâu từ Workspace.CurrentCamera, ở độ sâu, mà sương mù sẽ hoàn toàn bị che kín.

  • Đọc Song Song

    Độ sâu từ Workspace.CurrentCamera, ở độ sâu, lúc nào mà sương mù bắt đầu hiện trình diễn.

  • Đọc Song Song

    Độ dịch chuyển trong không gian của khu vực, ảnh hưởng đến kết quả của thời gian Class.Lighting trên vị trí của mặt trời và mặt trăng.

  • Đọc Song Song

    Bật/tắt ánh sáng động base on voxel cho trò chơi.

  • Intent:Intent
    Không Thể Viết Kịch Bản
    Đọc Song Song
  • Đọc Song Song

    Màu sắc chiếu sáng được áp dụng cho các khu vực ngoài trời.

  • Quality:Quality
    Không Thể Viết Kịch Bản
    Đọc Song Song
  • Đọc Song Song

    Điều khiển độ nét của bóng tối.

  • Bảo Mật Kịch Bản Roblox
    Đọc Song Song

    Xác định hệ thống chiếu sáng để xử lý thế giới 3D. Không scriptable.

  • Đọc Song Song

    Một biểu tượng chuỗi 24 giờ của thời gian hiện tại của ngày được sử dụng bởi Lighting .

Phương Pháp

Sự Kiện

Thuộc Tính

Ambient

Đọc Song Song

Độ sáng được ứng dụng cho các khu vực bị che khỏi tầm mắt, chẳng hạn như các khu vực bên trong.

Giá trị này mặc định là 0, 0, 0 (màu đen).

Đến khi các kênh màu đỏ, xanh và xanh dương của thuộc tính này không vượt quá các kênh tương ứng tương ứng tương ứng tươ

Lưu ý, khi Lighting.GlobalShadows bị vô hiệu hóa, không có sự phân biệt giữa các khu vực bị che khỏi và những khu vực không. Trong trường hợp này, Lighting.OutdoorAmbient sẽ bị lơ bỏ và màu sắc từ thuộc tính Môi trường sẽ được

Đối với nhiều thuộc tính ảnh hưởng đến màu sắc của chiếu sáng, xin vui lòng tham khảo Lighting.ColorShiftBottomLighting.ColorShiftTop .

Brightness

Đọc Song Song

Độ sáng của nơi địa điểm.

Đổi giá trị này sẽ ảnh hưởng đến tác động của nguồn ánh sáng (mặt trời hoặc mặt trăng) đến chiếu sáng của bản đồ. Khi độ sáng được đặt để 0, sẽ khô

Khi thuộc tính này không bị kẹp, hiệu ứng được kẹp giữa 0 và 2. Việc đặt Độ sáng lên 10 sẽ không khác gì đặt nó lên 2.

Các thành phần, Lighting.AmbientLighting.OutdoorAmbient cũng có thể được sử dụng để ảnh hưởng đến sự sáng của một nơi. Ví dụ, thiết lập <

ClockTime

Không Sao Chép
Đọc Song Song

Một biểu tượng số (trong giờ) của thời gian hiện tại của ngày được sử dụng bởi Lighting .

Ghi chú, thuộc tính này không đồng bộ với thời gian thực trong ngày và sẽ không thay đổi trong trò chơi trừ khi nó đã được thay đổi bởi một script.

Đối với một đo lường của Lighting thời gian được biểu tượng như một chuỗi 24 giờ dùng Lighting.CurrentTime . Thay đổi Lighting.CurrentTime hoặc sử dụng 1> Class.Lighting:SetMinutesAfterMidnight()

Sử dụng ClockTime yêu cầu thời gian phải được normal hóa:


minutesAfterMidnight = 0
while true do
minutesAfterMidnight += 1
local minutesNormalised = minutesAfterMidnight % (60 * 24)
local hours = minutesNormalised / 60
Lighting.ClockTime = hours
task.wait()
end

Sử dụng Lighting.TimeOfDay yêu cầu thời gian được normal hóa và một hình dạng chuỗi được biểu tượng:


minutesAfterMidnight = 0
while true do
minutesAfterMidnight += 1
local minutesNormalised = minutesAfterMidnight % (60 * 24)
local seconds = minutesNormalised * 60
local hours = string.format("%02.f", seconds//3600)
local mins = string.format("%02.f", math.floor(seconds/60 - (hours*60)))
local secs = string.format("%02.f", math.floor(seconds - hours*3600 - mins *60))
local timeString = hours..":"..mins..":"..secs
Lighting.TimeOfDay = timeString
task.wait()
end

Sử dụng Lighting:SetMinutesAfterMidnight() không yêu cầu quá trình xử lý thêm:


minutesAfterMidnight = 0
while true do
minutesAfterMidnight += 1
Lighting:SetMinutesAfterMidnight(minutesAfterMidnight)
task.wait()
end

ColorShift_Bottom

Đọc Song Song

Màu được diễn tả bằng ánh sáng phản chiếu trên các bề mặt ngược lại so với những bề mặt hướng mặt trời hoặc mặt trăng.

Bề mặt của một Class.BasePart bị ảnh hưởng bởi ColorShift_Bottom phụ thuộc vào vị trí và hướng hướng của Class.BasePart so với mặt trời hoặc mặt trăng. Khi mặt trời ở trên trực tiếp một Class.BasePart , sự thay đổi màu sẽ chỉ áp dụng cho bề mặ

Hiệu ứng này có thể được tăng hoặc giảm bằng cách đổi Lighting.Brightness .

ColorShift_Bottom ảnh hưởng đến bề mặt ngược lại để Lighting.ColorShift_Top

Lưu ý, Lighting.ColorShift_Top và ColorShift_Bottom sẽ tương tác với các thuộc tính Lighting.AmbientLighting.OutdoorAmbient nếu chúng lớn hơn 0,

ColorShift_Top

Đọc Song Song

Màu được diễn tả bằng ánh sáng phản chiếu từ bề mặt hướng mặt trời hoặc mặt trăng.

Bề mặt của một Class.BasePart bị ảnh hưởng bởi ColorShift_Top phụ thuộc vào vị trí và hướng hướng của Class.BasePart so với mặt trời hoặc mặt trăng. Khi mặt trời ở trên trực tiếp một Class.BasePart , sự thay đổi màu sẽ chỉ áp dụng cho bề mặ

Hiệu ứng này có thể được tăng hoặc giảm bằng cách đổi Lighting.Brightness .

Mặc dù ColorShift_Top ảnh hưởng đến bề mặt được tiếp xúc với ánh sáng, Lighting.ColorShift_Bottom ảnh hưởng đến bề mặt được che khỏi ánh sáng.

Ghi chú, ColorShift_Top và ColorShift_Bottom sẽ tương tác với các đặt tính Lighting.AmbientLighting.OutdoorAmbient nếu chúng lớn hơn 0, 0, 0.

EnvironmentDiffuseScale

Đọc Song Song

Đèn môi trường được tạo ra từ môi trường. Giá trị của thuộc tính này mặc định là 0.

Nó giống như Lighting.AmbientLighting.OutdoorAmbient property nhưng nó là động và có thể thay đổi theo thời gian và theo thời gian của trời. Nó được khuyến nghị khi tăng giá này, Ambient và OutdoorAmbient được giảm tương ứng.

Nó cũng làm cho skybox xuất hiện vào ban đêm.

EnvironmentSpecularScale

Đọc Song Song

Đèn phản xạ từ môi trường. Giá trị của thuộc tính này mặc định là 0.

Nó sẽ làm cho những đối tượng mịn màng phản ánh môi trường. Đặc biệt quan trọng để làm cho kim loại thực tế hơn.

ExposureCompensation

Đọc Song Song

Đặc tính này xác định số lượng bù trừ tối độ tiếp xúc mà nó áp dụng cho cấp độ tiếp xúc của cảnh trước khi bước vào bước tách màu. Mặc định là 0.

  • Một giá trị +1 cho thấy gấp đôi số lượng tiếp xúc và -1 cho thấy một nửa số lượng tiếp xúc.
  • Giá trị 0 cho thấy không có sự bù đắp tiếp xúc nào sẽ được thực hiện.
  • Độ sụt giảm: -5 đến 5

Điều này được sao chép và có thể được cài đặt từ các script hoặc Studio .


local Lighting = game:GetService("Lighting")
Lighting.ExposureCompensation = 5

Bạn có thể sử dụng thuộc tính này để điều chỉnh số lượng tiếp xúc trước khi bước vào bước map tonemap để hiển thị thêm chi tiết ở các khu vực sáng hơn hoặc tối hơn. Điều này cần thiết khi chúng tôi chuyển sang một dòng dẫn HDR.

Khi Lighting.Technology được đặt thành Legacy, thuộc tính này không có hiệu lực.


local Lighting = game:GetService("Lighting")
-- ExposureCompensation không có hiệu lực vì công nghệ của Lighting là Di Sản
Lighting.Technology = Enum.Technology.Legacy
Lighting.ExposureCompensation = 5

FogColor

Đọc Song Song

Các thuộc tính sương mù được ẩn khi Lighting chứa một đối tượng Atmosphere .

Một giá trị Color3 cho màu của Lighting sương mù.

Làm thế nào để sương mù hoạt động?

Sương mù ở Roblox được hiển thị trên một máy bay hướng theo hướng Workspace.CurrentCamera . Nó mờ dần giữa Lighting.FogStart tính năng nơi nó không có thể nhìn thấy, đến Class.Lighting.FogEnd

Ở các khoảng cách lớn hơn Lighting.FogEnd , màu sẽ được xác định hoàn toàn bởi FogColor. Tuy nhiên, ở các khoảng cách giữa Lighting.FogStartLighting.FogEnd thì độ thấm nhập màu sẽ phụ thuộ

Roblox's fog sử dụng interpolation line性 giữa Lighting.FogStartLighting.FogEnd . Điều này có nghĩa là nếu Class.Lighting


local Lighting = game:GetService("Lighting")
-- fog will fade between 25 and 200 studs
Lighting.FogStart = 25
Lighting.FogEnd = 200

Ghi chú, sương mù không che không gian trên trần.

FogEnd

Đọc Song Song

Các thuộc tính sương mù được ẩn khi Lighting chứa một đối tượng Atmosphere .

Độ sâu từ Workspace.CurrentCamera, ở độ sâu, mà sương mù sẽ hoàn toàn bị che kín.

Làm thế nào để sương mù hoạt động?

Sương mù ở Roblox được hiển thị trên một máy bay hướng theo hướng nhìn Workspace.CurrentCamera . Nó tự nhạt giữa Lighting.FogStart thuộc tính nơi nó không thể nhìn thấy, đến FogEnd tính n

Ở các khoảng cách lớn hơn FogEnd, màu sẽ được xác định hoàn toàn bởi Lighting.FogColor . Tuy nhiên, ở các khoảng cách giữa Lighting.FogStart và FogEnd, độ bám trộn màu sẽ phụ thuộc vào vị trí.

Roblox's fog sử dụng interpolation line性 giữa Lighting.FogStart và FogEnd. Điều này có nghĩa là nếu Lighting.FogStart là 10 và FogEnd là 20, ở khoảng cách 15 studs, fog sẽ ở 5


local Lighting = game:GetService("Lighting")
-- fog will fade between 25 and 200 studs
Lighting.FogStart = 25
Lighting.FogEnd = 200

Màu của sương mù có thể được điều chỉnh bằng cách sử dụng Lighting.FogColor .

Ghi chú, sương mù không che không gian trên trần.

FogStart

Đọc Song Song

Các thuộc tính sương mù được ẩn khi Lighting chứa một đối tượng Atmosphere .

Độ sâu từ Workspace.CurrentCamera, ở độ sâu, lúc nào mà sương mù bắt đầu hiện trình diễn.

Làm thế nào để sương mù hoạt động?

Sương mù ở Roblox được hiển thị trên một máy bay hướng theo hướng nhìn Workspace.CurrentCamera . Nó biến mất giữa FogStart property nơi nó không có thể nhìn thấy, đến FogEnd property nơi nó hoàn toàn opaque. Hiệu ứng c

Ở các khoảng cách lớn hơn Lighting.FogEnd, màu sẽ được xác định hoàn toàn bởi Lighting.FogColor . Tuy nhiên, ở các khoảng cách giữa FogStart và Lighting.FogEnd, độ thấm nhập màu sẽ phụ thuộc vào vị tr

Roblox's fog sử dụng interpolation line性 giữa FogStart và Lighting.FogEnd . Điều này có nghĩa là nếu FogStart là 10 và Lighting.FogEnd là 20, ở khoảng cách 15 studs, fog sẽ ở 50%.


local Lighting = game:GetService("Lighting")
-- fog will fade between 25 and 200 studs
Lighting.FogStart = 25
Lighting.FogEnd = 200

Màu của sương mù có thể được điều chỉnh bằng cách sử dụng Lighting.FogColor .

Ghi chú, sương mù không che không gian trên trần.

GeographicLatitude

Đọc Song Song

Độ dịch chuyển trong không gian của khu vực, ảnh hưởng đến kết quả của thời gian Class.Lighting trên vị trí của mặt trời và mặt trăng.

Khi tính vị trí của mặt trời, vị trí của trái đất cũng được xem tài khoản.

Thay đổi GeographicLatitude sẽ thay đổi vị trí mặt trời mọc và mặt trăng mọc mỗi Lighting.TimeOfDay. Các nhà phát triển muốn nhận vị trí mặt trời hoặc mặt trăng nên sử dụng Lighting:GetSunDirection() hoặc Lighting:GetMoonDirection() .

Mẫu mã

Sun direction

local Lighting = game:GetService("Lighting")
local UNIT_Z = Vector3.new(0, 0, 1)
local EARTH_TILT = math.rad(23.5) -- The Earth's tilt in radians.
local HALF_SOLAR_YEAR = 182.6282 -- Half the length of an average solar year
local function getSunDirection()
local gameTime = Lighting:GetMinutesAfterMidnight()
local geoLatitude = Lighting.GeographicLatitude
local dayTime = gameTime / 1440
local sourceAngle = 2 * math.pi * dayTime
local sunPosition = Vector3.new(math.sin(sourceAngle), -math.cos(sourceAngle), 0)
local latRad = math.rad(geoLatitude)
local sunOffset = -EARTH_TILT * math.cos(math.pi * (dayTime - HALF_SOLAR_YEAR) / HALF_SOLAR_YEAR) - latRad
local sunRotation = CFrame.fromAxisAngle(UNIT_Z:Cross(sunPosition), sunOffset)
local sunDirection = sunRotation * sunPosition
return sunDirection
end
print(getSunDirection())

GlobalShadows

Đọc Song Song

Bật/tắt ánh sáng động base on voxel trong trò chơi

GlobalShadows làm gì?

Khi đặt để true, bóng tối được hiển thị ở các khu vực bị che chắn tùy thuộc vào vị trí của mặt trời và mặt trăng. Màu sắc chiếu sáng được áp dụng cho các khu vực này được xác định bởi thuộc tính Class.Lighting.A

Khi bị vô hiệu hóa, bóng tối không được tạo và không có sự phân biệt giữa khu vực bên trong và bên ngoài. Do kết quả, thuộc tính Lighting.Ambient xác định màu sắc chiếu sáng và Lighting.OutdoorAmbient sẽ không làm gì.

Bóng được tính bằng một hệ thống voxel, và mỗi voxel chiếu sáng được tính là 4x4x4 studs. Điều này có nghĩa là các đối tượng cần phải lớn hơn 4x4x4 studs để hiển thị một bóng tương tự. Bóng cũng được tính lại khi Class.Base

Ghi chú, thuộc tính này không liên quan đến bóng tối của nhân vật được hiển thị bất kể GlobalShadows được cài đặt như thế nào.

Để biết thêm thông tin về chiếu sáng động态 của Roblox, vui lòng xem bài đăng này blog.

Bật/Tắt Bóng Toàn Cầu

Những nhà phát triển bật/tắt cài đặt GlobalShadows sẽ nhận thấy rằng vô hiệu hóa nó làm cho nơi này tối hơn nhiều. Điều này là do khi vô hiệu hóa nó Lighting.Ambient

Trong hầu hết các trường hợp, những nhà phát triển được khuyến nghị để để lại GlobalShadows bật do vẻ nhìn thị ngoại hìnhvượt trội. Xem Hướng dẫn Lighting Properties để so sánh.

Intent

Intent
Không Thể Viết Kịch Bản
Đọc Song Song

OutdoorAmbient

Đọc Song Song

Màu sắc chiếu sáng được áp dụng cho các khu vực ngoài trời.

Giá trị này mặc định là 127, 127, 127.

As long as the red, green and blue channels of Lighting.Ambient do not exceed the corresponding channels in this property, the hue of the lighting in outdoor areas will be determined by this property. The effective OutdoorAmbient value is clamped

Lưu ý, khi Lighting.GlobalShadows bị vô hiệu hóa, không có sự phân biệt giữa các khu vực bị che khỏi từ trời và không. Trong trường hợp này, OutdoorAmbient sẽ bị lơ và màu từ thuộc tính Lighting.Ambient sẽ được ứng dụng ở khắ

Đối với nhiều thuộc tính ảnh hưởng đến màu sắc của chiếu sáng, xin vui lòng tham khảo Lighting.ColorShift_BottomLighting.ColorShift_Top .

Quality

Quality
Không Thể Viết Kịch Bản
Đọc Song Song

ShadowSoftness

Đọc Song Song

Điều khiển độ nét của bóng tối. Giá trị của thuộc tính này mặc định là 0,2.

Điều này chỉ hoạt động khi Lighting.Technology chế độ là ShadowMap hoặc Future và thiết bị có khả năng ShadowMap.

Technology

Bảo Mật Kịch Bản Roblox
Đọc Song Song

Xác định hệ thống chiếu sáng để hiển thị thế giới 3D. Không thể scriptable và chỉ được mod改 ở Studio. Tham khảo Enum.Technology để có được các lựa chọn và hiệu ứng ánh sáng của mỗi lựa chọn.

TimeOfDay

Đọc Song Song

Một biểu tượng chuỗi 24 giờ của thời gian hiện tại của ngày được sử dụng bởi Lighting .

Ghi chú, thuộc tính này không đồng bộ với thời gian thực trong ngày và sẽ không thay đổi trong trò chơi trừ khi nó đã được thay đổi bởi một script.

Đối với một đo lường số Lighting thời gian sử dụng Lighting.ClockTime . Thay đổi Lighting.ClockTime hoặc sử dụng 1> Class.Lighting:SetMinutesAfterMidnight()1> sẽ thay đổi thuộc tính này.

Sử dụng TimeOfDay yêu cầu thời gian được normal hóa và một hình dạng chuỗi được biểu tượng:


minutesAfterMidnight = 0
while true do
minutesAfterMidnight += 1
local minutesNormalised = minutesAfterMidnight % (60 * 24)
local seconds = minutesNormalised * 60
local hours = string.format("%02.f", seconds//3600)
local mins = string.format("%02.f", math.floor(seconds/60 - (hours*60)))
local secs = string.format("%02.f", math.floor(seconds - hours*3600 - mins *60))
local timeString = hours..":"..mins..":"..secs
Lighting.TimeOfDay = timeString
task.wait()
end

Sử dụng Lighting.ClockTime yêu cầu thời gian phải được normal hóa:


minutesAfterMidnight = 0
while true do
minutesAfterMidnight += 1
local minutesNormalised = minutesAfterMidnight % (60 * 24)
local hours = minutesNormalised / 60
Lighting.ClockTime = hours
task.wait()
end

Sử dụng Lighting:SetMinutesAfterMidnight() không yêu cầu quá trình xử lý thêm:


minutesAfterMidnight = 0
while true do
minutesAfterMidnight += 1
Lighting:SetMinutesAfterMidnight(minutesAfterMidnight)
task.wait()
end

Phương Pháp

GetMinutesAfterMidnight

Ghi Song Song

Trả lại số phút đã qua nửa đêm với mục đích chiếu sáng.

Số này sẽ gần như giống với Lighting.ClockTime nhân với 60.

Giá trị này sẽ không bao giờ được bằng giá trị được đưa ra trong Lighting:SetMinutesAfterMidnight() nhưng nó sẽ trả lại phút sau nửa đêm trong ngày hiện tại.

Đối với Lighting thời gian được biểu tượng như một chuỗi, xem Lighting.TimeOfDay .


Lợi Nhuận

Số phút sau nửa đêm.

Mẫu mã

Lighting:GetMinutesAfterMidnight

local Lighting = game:GetService("Lighting")
Lighting.TimeOfDay = "14:00:00"
print(Lighting:GetMinutesAfterMidnight())

GetMoonDirection

Ghi Song Song

Điều chỉnh hướng của mặt trăng từ vị trí 0, 0, 0.

Lưu ý, khi mặt trăng có 'cài đặt' và không còn hiển thị, Vector3 được trả lại bởi hàm này sẽ tiếp tục chỉ về mặt trăng dưới bản đồ.

Những nhà phát triển muốn thay đổi vị trí của mặt trăng nên sử dụng các đặc tính Lighting.ClockTime hoặc Lighting.GeographicLatitude .

Một biến thể của hàm này tồn tại để nhận hướng của mặt trời, Lighting:GetSunDirection() .


Lợi Nhuận

Vector3 đại diện hướng của mặt trăng từ vị trí 0, 0, 0.

Mẫu mã

Lighting:GetMoonDirection

local Lighting = game:GetService("Lighting")
Lighting.TimeOfDay = "14:00:00"
print(Lighting:GetMoonDirection())

GetMoonPhase

Quay trở lại giai đoạn hiện tại của mặt trăng. Không có cách nào để thay đổi giai đoạn của mặt trăng nên nó sẽ luôn trở lại 0,75.


Lợi Nhuận

GetSunDirection

Ghi Song Song

Đại diện hướng của mặt trời từ vị trí 0, 0, 0.

Lưu ý, khi mặt trời đã đặt và không còn hiển thị, Vector3 được trả lại bởi chức năng này sẽ tiếp tục hướng về mặt trời dưới bản đồ.

Những nhà phát triển muốn thay đổi vị trí của mặt trời nên sử dụng các đặc tính Lighting.ClockTime hoặc Lighting.GeographicLatitude .

Một biến thể của hàm này tồn tại để lấy hướng của mặt trăng, Lighting:GetMoonDirection() .


Lợi Nhuận

Vector3 đại diện hướng của mặt trời từ vị trí 0, 0, 0.

Mẫu mã

Lighting:GetSunDirection

local Lighting = game:GetService("Lighting")
Lighting.TimeOfDay = "14:00:00"
Lighting.GeographicLatitude = 41.73
print(Lighting:GetSunDirection())

SetMinutesAfterMidnight

void

Đặt Lighting.TimeOfDayLighting.ClockTime đến thời gian chuẩn sau nửa đêm.

Làm thế nào để tạo một kịch bản ngày / đêm?

SetMinutesAfterMidnight cho phép một giá trị số để được sử dụng, ví dụ như trong một chu kỳ ngày/đêm Script , mà không cần phải chuyển thành một chuỗi trong định dạng yêu cầu bởi Lighting.TimeOfDay . Nó

Sử dụng Lighting.TimeOfDay yêu cầu thời gian được normal hóa và một hình dạng chuỗi được biểu tượng:


minutesAfterMidnight = 0
while true do
minutesAfterMidnight += 1
local minutesNormalised = minutesAfterMidnight % (60 * 24)
local seconds = minutesNormalised * 60
local hours = string.format("%02.f", seconds // 3600)
local mins = string.format("%02.f", math.floor(seconds / 60 - (hours * 60)))
local secs = string.format("%02.f", math.floor(seconds - hours * 3600 - mins * 60))
local timeString = hours .. ":" .. mins .. ":" .. secs
Lighting.TimeOfDay = timeString
task.wait()
end

Sử dụng Lighting.ClockTime yêu cầu thời gian phải được normal hóa:


minutesAfterMidnight = 0
while true do
minutesAfterMidnight += 1
local minutesNormalised = minutesAfterMidnight % (60 * 24)
local hours = minutesNormalised / 60
Lighting.ClockTime = hours
task.wait()
end

Sử dụng Lighting:SetMinutesAfterMidnight() không yêu cầu quá trình xử lý thêm:


minutesAfterMidnight = 0
while true do
minutesAfterMidnight += 1
Lighting:SetMinutesAfterMidnight(minutesAfterMidnight)
task.wait()
end

Tham Số

minutes: number

Số phút sau nửa đêm.


Lợi Nhuận

void

Mẫu mã

Setting Lighting Time

local Lighting = game:GetService("Lighting")
Lighting:SetMinutesAfterMidnight(840)

Sự Kiện

LightingChanged

Sự kiện này bắt đầu khi một tính năng Lighting được thay đổi hoặc thêm hoặc xóa một tính năng Sky từ Lighting .

Mặc dù sự kiện này bắt lỗi khi hầu hết các thuộc tính của Lighting được thay đổi, nhưng những ngoại lệ ít đó nên được lưu ý:

Trong các trường hợp khi đó không phải là điều bạn muốn, sự kiện Object.Changed hoặc Object:GetPropertyChangedSignal() có thể được sử dụng.

Tham Số

skyChanged: bool

Mẫu mã

Lighting.LightingChanged

local Lighting = game:GetService("Lighting")
local function onLightingChanged(skyboxChanged)
if skyboxChanged then
print("Skybox has changed")
else
print("The skybox did not change.")
end
end
Lighting.LightingChanged:Connect(onLightingChanged)