Lighting
*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.
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ã
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
Độ 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.
Độ sáng của nơi địa điểm.
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 .
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.
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.
Độ sâu từ Workspace.CurrentCamera, ở độ sâu, mà sương mù sẽ hoàn toàn bị che kín.
Độ sâu từ Workspace.CurrentCamera, ở độ sâu, lúc nào mà sương mù bắt đầu hiện trình diễn.
Độ 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.
Bật/tắt ánh sáng động base on voxel cho trò chơi.
Màu sắc chiếu sáng được áp dụng cho các khu vực ngoài trời.
Điều khiển độ nét của bóng tối.
Xác định hệ thống chiếu sáng để xử lý thế giới 3D. Không scriptable.
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
Trả lại số phút đã qua nửa đêm với mục đích chiếu sáng.
Điều chỉnh hướng của mặt trăng từ vị trí 0, 0, 0.
Trả về giai đoạn hiện tại của mặt trăng.
Đại diện hướng của mặt trời từ vị trí 0, 0, 0.
Đặt Lighting.TimeOfDay và Lighting.ClockTime đến thời gian chuẩn sau nửa đêm.
Sự Kiện
Thuộc Tính
Ambient
Độ 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.ColorShiftBottom và Lighting.ColorShiftTop .
Brightness
Độ 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.Ambient và Lighting.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
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 = 0while true dominutesAfterMidnight += 1local minutesNormalised = minutesAfterMidnight % (60 * 24)local hours = minutesNormalised / 60Lighting.ClockTime = hourstask.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 = 0while true dominutesAfterMidnight += 1local minutesNormalised = minutesAfterMidnight % (60 * 24)local seconds = minutesNormalised * 60local 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..":"..secsLighting.TimeOfDay = timeStringtask.wait()end
Sử dụng Lighting:SetMinutesAfterMidnight() không yêu cầu quá trình xử lý thêm:
minutesAfterMidnight = 0while true dominutesAfterMidnight += 1Lighting:SetMinutesAfterMidnight(minutesAfterMidnight)task.wait()end
ColorShift_Bottom
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.Ambient và Lighting.OutdoorAmbient nếu chúng lớn hơn 0,
ColorShift_Top
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.Ambient và Lighting.OutdoorAmbient nếu chúng lớn hơn 0, 0, 0.
EnvironmentDiffuseScale
Đè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.Ambient và Lighting.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
Đè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 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ảnLighting.Technology = Enum.Technology.LegacyLighting.ExposureCompensation = 5
FogColor
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.FogStart và Lighting.FogEnd thì độ thấm nhập màu sẽ phụ thuộ
Roblox's fog sử dụng interpolation line性 giữa Lighting.FogStart và Lighting.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 studsLighting.FogStart = 25Lighting.FogEnd = 200
Ghi chú, sương mù không che không gian trên trần.
FogEnd
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 studsLighting.FogStart = 25Lighting.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á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 studsLighting.FogStart = 25Lighting.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
Độ 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ã
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
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
OutdoorAmbient
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_Bottom và Lighting.ColorShift_Top .
Quality
ShadowSoftness
Đ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
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
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 = 0while true dominutesAfterMidnight += 1local minutesNormalised = minutesAfterMidnight % (60 * 24)local seconds = minutesNormalised * 60local 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..":"..secsLighting.TimeOfDay = timeStringtask.wait()end
Sử dụng Lighting.ClockTime yêu cầu thời gian phải được normal hóa:
minutesAfterMidnight = 0while true dominutesAfterMidnight += 1local minutesNormalised = minutesAfterMidnight % (60 * 24)local hours = minutesNormalised / 60Lighting.ClockTime = hourstask.wait()end
Sử dụng Lighting:SetMinutesAfterMidnight() không yêu cầu quá trình xử lý thêm:
minutesAfterMidnight = 0while true dominutesAfterMidnight += 1Lighting:SetMinutesAfterMidnight(minutesAfterMidnight)task.wait()end
Phương Pháp
GetMinutesAfterMidnight
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ã
local Lighting = game:GetService("Lighting")
Lighting.TimeOfDay = "14:00:00"
print(Lighting:GetMinutesAfterMidnight())
GetMoonDirection
Đ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
Mẫu mã
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
Đạ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
Mẫu mã
local Lighting = game:GetService("Lighting")
Lighting.TimeOfDay = "14:00:00"
Lighting.GeographicLatitude = 41.73
print(Lighting:GetSunDirection())
SetMinutesAfterMidnight
Đặt Lighting.TimeOfDay và Lighting.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 = 0while true dominutesAfterMidnight += 1local minutesNormalised = minutesAfterMidnight % (60 * 24)local seconds = minutesNormalised * 60local 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 .. ":" .. secsLighting.TimeOfDay = timeStringtask.wait()end
Sử dụng Lighting.ClockTime yêu cầu thời gian phải được normal hóa:
minutesAfterMidnight = 0while true dominutesAfterMidnight += 1local minutesNormalised = minutesAfterMidnight % (60 * 24)local hours = minutesNormalised / 60Lighting.ClockTime = hourstask.wait()end
Sử dụng Lighting:SetMinutesAfterMidnight() không yêu cầu quá trình xử lý thêm:
minutesAfterMidnight = 0while true dominutesAfterMidnight += 1Lighting:SetMinutesAfterMidnight(minutesAfterMidnight)task.wait()end
Tham Số
Số phút sau nửa đêm.
Lợi Nhuận
Mẫu mã
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 ý:
- Đổi Lighting.GlobalShadows sẽ không kích hoạt sự kiện này
- Các thuộc tính sương mù, Lighting.FogColor , Lighting.FogStart và Lighting.FogEnd sẽ không kích hoạt sự kiện này
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ố
Mẫu mã
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)