Lighting

แสดงที่เลิกใช้งานแล้ว

*เนื้อหานี้แปลโดยใช้ AI (เวอร์ชัน Beta) และอาจมีข้อผิดพลาด หากต้องการดูหน้านี้เป็นภาษาอังกฤษ ให้คลิกที่นี่

ไม่สามารถสร้าง
บริการ

บริการ การจัดเตรียมแสงสว่างในประสบการณ์ ควบคุมการจัดเตรียมแสงสว่างในประสบการณ์ รวมถึงสถานที่ตั้งที่ปรับแต่งได้ที่คุณสามารถใช้เพื่อเปลี่ยนวิธีที่แสงปรากฏและโต้ตอบกับ

การจัดเตรียมแสง อาจมีวัตถุ Atmosphere เพื่อเรนเดอร์เอฟเฟกต์บรรยากาศที่เป็นจริงรวมถึงความหนาแน่นของอนุภาคประกาย เรือมต้น สี และความสว่าง ดูที่ เอฟเฟกต์บ

นอกจากนี้ การจัดเตรียมแสงสว่างเสริม (รวมกับ Workspace.CurrentCamera ) อาจมีเอฟเฟกต์หลังการประมวลผลเช่น Class.SunRaysEffect และ 1> Class.BlurEffect1> ดูที่

ตัวอย่างโค้ด

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

สรุป

คุณสมบัติ

  • อ่านพร้อมๆ กัน

    สีสันการจุดไฟที่ใช้สำหรับพื้นที่ที่ถูกปิดกั้นจากท้องฟ้า เช่น พื้นที่ภายใน

  • อ่านพร้อมๆ กัน

    ความเข้มของการสว่างในสถานที่

  • ไม่ซ้ำ
    อ่านพร้อมๆ กัน

    การแทนที่ตัวเลข (ในชั่วโมง) ของเวลาปัจจุบันของวันที่ใช้โดย Lighting

  • อ่านพร้อมๆ กัน

    สีที่แสดงโดยแสงสะท้อนในพื้นผิวที่ตรงกันข้ามกับพื้นผิวที่เป็นดวงอาทิตย์หรือดวงจันทร์

  • อ่านพร้อมๆ กัน

    สีที่แสดงโดยแสงสะท้อนจากพื้นผิวที่เป็นหน้าดวงอาทิตย์หรือดวงจันทร์

  • อ่านพร้อมๆ กัน

    แสงสภาพแวดล้อมที่มาจากสภาพแวดล้อม

  • อ่านพร้อมๆ กัน

    แสงสะท้อนแสงจากสภาพแวดล้อม

  • อ่านพร้อมๆ กัน

    มูลค่าการเปลี่ยนแปลงการเปิดเผย

  • อ่านพร้อมๆ กัน

    ค่า Color3 ที่ให้ความสว่างของ Lighting หมอก

  • อ่านพร้อมๆ กัน

    ความลึกจาก Workspace.CurrentCamera ในสตั๊ดที่จะมีหมอกที่เป็นอุปกรณ์ป้องกันฝุ่น

  • อ่านพร้อมๆ กัน

    ความลึกจาก Workspace.CurrentCamera ในสตั๊ดที่เริ่มแสดงให้เห็นในหมอก

  • อ่านพร้อมๆ กัน

    ลองติจูดภูมิศาสตร์ของฉากซึ่งส่งผลต่อเวลาการสร้าง Class.Lighting บนตำแหน่งดวงอาทิตย์และดวงจันทร์

  • อ่านพร้อมๆ กัน

    เปิด/ปิดการใช้งานแสงที่มีอยู่ในเกม

  • ไม่สามารถเขียนสคริปต์
    อ่านพร้อมๆ กัน
  • อ่านพร้อมๆ กัน

    สีแสงที่ใช้สำหรับพื้นที่ภายนอก

  • ไม่สามารถเขียนสคริปต์
    อ่านพร้อมๆ กัน
  • อ่านพร้อมๆ กัน

    ควบคุมว่าภาพเงามีความละเอียดแคบแคบแคบ

  • อ่านพร้อมๆ กัน

    กำหนดระบบการจัดเตรียมแสงสำหรับการเรนเดอร์โลก 3D ไม่สกริปต์ .

  • อ่านพร้อมๆ กัน

    การแทนที่สตริง 24 ชั่วโมงของเวลาปัจจุบันที่ใช้โดย Lighting

วิธีการ

  • เขียนพร้อมๆ กัน

    กลับจำนวนนาทีที่ผ่านมาหลังเที่ยงคืนเพื่อวัตถุประสงค์ในการจุดเปิดไฟ

  • เขียนพร้อมๆ กัน

    กลับมาเป็น Vector3 ที่แสดงทิศทางของดวงจันทร์จากตำแหน่ง 0, 0, 0

  • กลับรูปโฉมของดวงจันทร์

  • เขียนพร้อมๆ กัน

    กลับมาเป็น Vector3 ที่แสดงทิศทางของดวงอาทิตย์จากตำแหน่ง 0, 0, 0

  • ตั้งค่า Lighting.TimeOfDay และ Lighting.ClockTime ให้เป็นเวลานาทีหลังเที่ยงคืน

อีเวนต์

  • เหตุการณ์นี้เกิดขึ้นเมื่อสมบัติสมบัติ Lighting ถูกเปลี่ยนแปลงหรือสมบัติ Sky ถูกเพิ่มหรือลบออกจาก Lighting

คุณสมบัติ

Ambient

อ่านพร้อมๆ กัน

สีสันการจุดไฟที่ใช้สำหรับพื้นที่ที่ถูกปิดกั้นจากท้องฟ้า เช่น พื้นที่ภายใน

ค่านี้เริ่มต้นที่ 0, 0, 0 (สีดำ)

ตราบเท่าที่ช่องสีแดง สีเขียวและสีน้ำเงินของสมบัตินี้ไม่เกินช่องสีเขียวใน Class.Lighting.OutdoorAmbient

หมายเหตุ, เมื่อ Lighting.GlobalShadows ถูกปิดใช้งานจะไม่มีความแตกต่างระหว่างพื้นที่ที่คลุมและพื้นที่ที่ไม่คลุม ในกรณีนี้ Lighting.OutdoorAmbient จะได้รับการเพิกเฉยและสี

สำหรับสีที่มีผลต่อสีของแสง โปรดดู Lighting.ColorShiftBottom และ Lighting.ColorShiftTop

Brightness

อ่านพร้อมๆ กัน

ความเข้มของการสว่างในสถานที่

การเปลี่ยนค่านี้จะส่งผลกระทบต่อการจุดแสงของแหล่งไฟ (ดวงอาทิตย์หรือดวงจันทร์) บนแผนที่ เมื่อความสว่างถูกตั้งไว้ที่

ขณะที่ค่านี้ไม่ได้ถูกติดตั้งไว้ ผลกระทบจะถูกแบ่งออกเป็นระหว่าง 0 และ 2 หมายถึงการตั้งค่าความสว่างให้เป็น 10 จะไม่แตกต่างกับการตั้งค่าเป็น 2

หมายเหตุ, Lighting.Ambient และ Lighting.OutdoorAmbient สามารถใช้เพื่อส่งผลกระทบต่อความสว่างของสถานที่ได้ เช่นการต

ClockTime

ไม่ซ้ำ
อ่านพร้อมๆ กัน

การแทนที่ตัวเลข (ในชั่วโมง) ของเวลาปัจจุบันของวันที่ใช้โดย Lighting

หมายเหตุ, ค่านี้ไม่ตรงกับเวลาเดิมของวัน และจะไม่เปลี่ยนแปลงในระหว่างเกม ยกเว้นว่าจะถูกเปลี่ยนโดยสคริป

สำหรับการวัด Lighting เวลาโดยใช้ตัวอักษรสตริงเป็นรูป 24 ชั่วโมง การเปลี่ยนแปลง Lighting.CurrentTime หรือการใช้ Lighting.CurrentTime จะเปลี่

ใช้ ClockTime ต้องการเวลาที่ปกติ:


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

ใช้ Lighting.TimeOfDay ต้องใช้เวลาในการปรับปรุงและรูปแบบสตริง:


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

การใช้ Lighting:SetMinutesAfterMidnight() ไม่ต้องใช้การประมวลผลเพิ่มเติม:


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

ColorShift_Bottom

อ่านพร้อมๆ กัน

สีที่แสดงโดยแสงสะท้อนในพื้นผิวที่ตรงกันข้ามกับพื้นผิวที่เป็นดวงอาทิตย์หรือดวงจันทร์

พื้นผิวของ Class.BasePart ที่ได้รับผลกระทบจาก ColorShift_Bottom ขึ้นอยู่กับตำแหน่งและตำแหน่งของ Class.BasePart เมื่อเทียบกับตำแหน่งและตำแหน่งของดวงอาทิตย์หรือดวงจันทร์ โดยส่ว

เอฟเฟกต์นี้สามารถเพิ่มหรือลดได้โดยการเปลี่ยนแปลง Lighting.Brightness

ColorShift_Bottom ส่งผลกระทบให้กับพื้นผิวที่ตรงกันข้ามเพื่อ Lighting.ColorShift_Top

หมายเหตุ, Lighting.ColorShift_Top และ ColorShift_Bottom จะใช้งาน กับ Lighting.Ambient และ Lighting.OutdoorAmbient โปรพี่โปรพี่โ

ColorShift_Top

อ่านพร้อมๆ กัน

สีที่แสดงโดยแสงสะท้อนจากพื้นผิวที่เป็นหน้าดวงอาทิตย์หรือดวงจันทร์

พื้นผิวของ Class.BasePart ที่ได้รับผลกระทบจาก ColorShift_Top ขึ้นอยู่กับตำแหน่งและตำแหน่งของ Class.BasePart เมื่อเทียบกับตำแหน่งและตำแหน่งของดวงอาทิตย์หรือดวงจันทร์ โดยส่ว

เอฟเฟกต์นี้สามารถเพิ่มหรือลดได้โดยการเปลี่ยนแปลง Lighting.Brightness

ในขณะที่ ColorShift_Top ส่งผลกระทบต่อพื้นผิวที่สามารถเห็นได้ Lighting.ColorShift_Bottom ส่งผลกระทบต่อพื้นผิวที่ได้รับการปกป้องจากแสง

หมายเหตุ, ColorShift_Top และ ColorShift_Bottom จะใช้งาน กับ Lighting.Ambient และ Lighting.OutdoorAmbient โปรพี่ๆ ถ้าพวกเขาใหญ่กว่า 0, 0, 0

EnvironmentDiffuseScale

อ่านพร้อมๆ กัน

แสงสภาพแวดล้อมที่มาจากสภาพแวดล้อม มูลค่าของค่านี้เริ่มต้นที่ 0

มันคล้ายกับ Lighting.Ambient และ Lighting.OutdoorAmbient รายการ แต่มันเป็นไปได้และสามารถเปลี่ยนแปลงตามสภาพแวดล้อมและเวลาของวัน มันได้รับการแนะนำเมื่อเพิ่มรายก

นอกจากนี้ยังทำให้กล่องท้องฟ้าปรากฏในเวลากลางคืน

EnvironmentSpecularScale

อ่านพร้อมๆ กัน

แสงสะท้อนแสงที่มาจากสภาพแวดล้อม มีค่าเริ่มต้นของค่านี้คือ 0

มันจะทำให้วัตถุเงางามสะท้อนสภาพแวดล้อม สำคัญเป็นพิเศษเพื่อทำให้โลหะเป็นจริงมากขึ้น

ExposureCompensation

อ่านพร้อมๆ กัน

สมบัติสมุดนี้กำหนดจำนวนเงินการตรองแสงที่เป็นไปตามระดับแสงของฉากก่อนที่จะเป็นตัวแทนแผนที่ตัวเลือก ค่าเริ่มต้นคือ 0

  • ค่า +1 แสดงถึงการเปิดเผยเป็นสองเท่า และค่า -1 แสดงถึงการเปิดเผยครึ่งหนึ่ง
  • มีค่า 0 ซึ่งหมายความว่าไม่มีการชดเชยสามารถทำได้
  • ระยะ: -5 ถึง 5

คุณสมบัตินี้จะถูกเรียกใช้ซ้ำและสามารถตั้งค่าได้จากสคริปต์หรือ Studio


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

คุณสามารถใช้ค่านี้เพื่อปรับจำนวนการเปิดเผยก่อนที่จะเข้าสู่ขั้นตอนการแสดงผลเพื่อแสดงรายละเอียดเพิ่มเติมในพื้นที่สว่างหรือมืด

เมื่อ Lighting.Technology ติดตั้งเป็น Legacy ไม่มีผลกระทบต่อสมบัติสมบัตินี้


local Lighting = game:GetService("Lighting")
-- ExposureCompensation ไม่มีผล เพราะเทคโนโลยีของ Lighting เป็นมรดก
Lighting.Technology = Enum.Technology.Legacy
Lighting.ExposureCompensation = 5

FogColor

อ่านพร้อมๆ กัน

สมบัติของหมอกถูกซ่อนเมื่อ Lighting มีวัตถุ Atmosphere

ค่า Color3 ที่ให้ความสว่างของ Lighting หมอก

หมอกทำงานอย่างไร?

หมอกใน Roblox ปรากฏในเครื่องบินระนาบเพื่อทิศทาง Workspace.CurrentCamera มันจางหายไปที่ Lighting.FogStart ระหว่างที่มันไม่มองเห็นได้ไปยัง

ที่ระยะไกลมากกว่า Lighting.FogEnd สีจะถูกกำหนดโดยสมบูรณ์โดย FogColor อย่างไรก็ตามในระยะระหว่าง Lighting.FogStart และ Lighting.FogEnd จะมีส่วนร่วมในการผ

Roblox ใช้การแปลงเชิงเส้นระหว่าง Lighting.FogStart และ Lighting.FogEnd เพื่อให้สีของพิ


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

หมายเหตุ, หมอกไม่มีส่วนที่ปิดกั้นช่องทางเดิน

FogEnd

อ่านพร้อมๆ กัน

สมบัติของหมอกถูกซ่อนเมื่อ Lighting มีวัตถุ Atmosphere

ความลึกจาก Workspace.CurrentCamera ในสตั๊ดที่จะมีหมอกที่เป็นอุปกรณ์ป้องกันฝุ่น

หมอกทำงานอย่างไร?

หมอกใน Roblox ปรากฏในเครื่องบินระนาบกับทิศทาง Workspace.CurrentCamera มันจางระหว่าง Lighting.FogStart สมบัติที่มองไม่เห็นไปยัง FogEnd สมบัติที

ที่ระยะไกลเกิน FogEnd สีจะถูกกำหนดโดยสมบูรณ์โดย Lighting.FogColor อย่างไรก็ตามในระยะที่อยู่ระหว่าง Lighting.FogStart และ FogEnd องศาที่ผสมผสานของสีขึ้นอยู่กับตำแหน่ง

Roblox ใช้การแปลงเชิงเส้นระหว่าง Lighting.FogStart และ FogEnd เพื่อให้สีของพิกเซลที่ 15 และ FogEnd เป็นสี 20 ที่ระยะห่าง 15


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

สีของหมอกสามารถปรับแต่งได้โดยใช้ Lighting.FogColor

หมายเหตุ, หมอกไม่มีส่วนที่ปิดกั้นช่องทางเดิน

FogStart

อ่านพร้อมๆ กัน

สมบัติของหมอกถูกซ่อนเมื่อ Lighting มีวัตถุ Atmosphere

ความลึกจาก Workspace.CurrentCamera ในสตั๊ดที่เริ่มแสดงให้เห็นในหมอก

หมอกทำงานอย่างไร?

หมอกใน Roblox ปรากฏในเครื่องบินระนาบกับทิศทางการมองของ Workspace.CurrentCamera มันจางลงไปในระหว่าง FogStart โปรไฟน์ที่มันไม่มองเห็นไปยัง Class.Light

ที่ระยะไกลมากกว่า Lighting.FogEnd สีจะถูกกำหนดโดยสมบูรณ์โดย Lighting.FogColor อย่างไรก็ตาม ในระยะระหว่าง FogStart และ Lighting.FogEnd จะมีขนาดที่ผสมผสานของ

Roblox ใช้การแปลงเชิงเส้นระหว่าง FogStart และ Lighting.FogEnd เมื่อเป็นเช่นนี้หาก FogStart เป็น 10 และ Lighting.FogEnd จะเป็น 2


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

สีของหมอกสามารถปรับแต่งได้โดยใช้ Lighting.FogColor

หมายเหตุ, หมอกไม่มีส่วนที่ปิดกั้นช่องทางเดิน

GeographicLatitude

อ่านพร้อมๆ กัน

ลองติจูดภูมิศาสตร์ของฉากซึ่งส่งผลต่อเวลาการสร้าง Class.Lighting บนตำแหน่งดวงอาทิตย์และดวงจันทร์

เมื่อคำนวณตำแหน่งของดวงอาทิตย์ บัญชี

การเปลี่ยนแปลง GeographicLatitude จะเปลี่ยนตำแหน่งของดวงอาทิตย์ทุกๆ Lighting.TimeOfDay ของ ผู้พัฒนาที่มองหาตำแหน่งดวงอาทิตย์หรือดวงจันทร์ควรใช้ Lighting:GetSunDirection()

ตัวอย่างโค้ด

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

อ่านพร้อมๆ กัน

เปิด/ปิดการใช้งานแสงในเกมที่ขึ้นอยู่กับ voxel

GlobalShadows ทำอะไร?

เมื่อตั้งค่าเป็นจริง เงาจะเรนเดอร์ในพื้นที่ที่ครอบคลุมตามตำแหน่งของดวงอาทิตย์และดวงจันทร์ สีเฉดจุดเรียงตัวที่ใช้สำหรับพื้นที่เหล่านี้จะได้รับกา

เมื่อปิดใช้งานการเรียกเรือมืดจะไม่ถูกเรียกและไม่มีความแตกต่างระหว่างพื้นที่ภายในและภายนอก ในผลลัพธ์, คุณสมบัติ Lighting.Ambient จะกำหนดสีแสงและ Lighting.OutdoorAmbient จะ

เงาจะถูกคํานวณโดยระบบ voxel และแต่ละ voxel เงาจะอยู่ในระดับ 4x4x4 สตัด ซึ่งหมายความว่าวัตถุจะต้องใหญ่กว่า 4x4x4 สตัดเพื่อแสดงเงาที่เป็นจริง เงายังจะถูกระคํ

หมายเหตุ, คุณสมบัตินี้ไม่เกี่ยวข้องกับเงาจากตัวละครที่แสดงอยู่อย่างไรก็ตาม GlobalShadows ติดตั้งไว้

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการจัดแสงที่มีประสิทธิภาพของ Roblox โปรดดูโพสต์บล็อกนี้ โปรดดูโพสต์บล็อกนี้สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการจัดแสงที่มีประสิทธิภาพของ Roblox For more information about Roblox's dynamic lighting, please see this โพสต์บล็อก .

เปิด/ปิด GlobalShadows

ผู้พัฒนาที่เปิด/ปิดการตั้งค่า GlobalShadows จะสังเกตเห็นว่าการปิดการใช้งานมันจะทำให้สถานที่มืดมากขึ้น เนื่องจากเมื่อ GlobalShadows ถู

รูปลักษณ์ดู การแนะนำการใช้งาน แสงสว่าง สมบัติ

ไม่สามารถเขียนสคริปต์
อ่านพร้อมๆ กัน

OutdoorAmbient

อ่านพร้อมๆ กัน

สีแสงที่ใช้สำหรับพื้นที่ภายนอก

ค่านี้เริ่มต้นที่ 127, 127, 127

ตราบเท่าที่ช่องสีแดง สีเขียว และสีน้ำเงินของ Lighting.Ambient ไม่เกินช่

หมายเหตุ, เมื่อ Lighting.GlobalShadows ถูกปิดใช้งานจะไม่มีความแตกต่างระหว่างพื้นที่ที่คลุมอยู่จากท้องฟ้าและพื้นที่ที่ไม่ ในกรณีนี้ OutdoorAmbient จะได้รับการเพิกเฉยและส

สำหรับสีที่มีผลต่อสีของแสง โปรดดู Lighting.ColorShift_Bottom และ Lighting.ColorShift_Top

ไม่สามารถเขียนสคริปต์
อ่านพร้อมๆ กัน

ShadowSoftness

อ่านพร้อมๆ กัน

ควบคุมว่าเงามืดมีความละเอียดแค่ไหน มูลค่าของสมบัติส่วนนี้เริ่มต้นที่ 0.2

คุณสมบัตินี้ทำงานได้เฉพาะเมื่อ Lighting.Technology โหมดเป็น ShadowMap หรือ Future และอุปกรณ์สามารถเปิดเผยแสงได้

Technology

อ่านพร้อมๆ กัน
การรักษาความปลอดภัยของสคริปต์ Roblox

กำหนดระบบจัดแสงสำหรับการเรนเดอร์โลก 3D ระบบนี้ไม่สกริปต์และเปลี่ยนแปลงได้เฉพาะใน Studio ดู Enum.Technology สำหรับตัวเลือกที่มีอยู่ และ Lighting Technology สำหรับคำอธิบายและเอฟเฟกต์วิดีโ

TimeOfDay

อ่านพร้อมๆ กัน

การแทนที่สตริง 24 ชั่วโมงของเวลาปัจจุบันที่ใช้โดย Lighting

หมายเหตุ, ค่านี้ไม่ตรงกับเวลาเดิมของวัน และจะไม่เปลี่ยนแปลงในระหว่างเกม ยกเว้นว่าจะถูกเปลี่ยนโดยสคริป

สำหรับการวัดจํานวนเลขของ Lighting เวลาใช้ Lighting.ClockTime การเปลี่ยนแปลง Lighting.ClockTime หรือการใช้ 1> Class.Lighting:SetMinutesAfterMidnight()1> จะเปลี่ยนแปลงสมบั

ใช้ TimeOfDay ต้องการเวลาที่ปกติและรูปแบบสตริง:


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

การใช้ Lighting.ClockTime ต้องใช้เวลาในการปรับปรุง:


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

การใช้ Lighting:SetMinutesAfterMidnight() ไม่ต้องใช้การประมวลผลเพิ่มเติม:


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

วิธีการ

GetMinutesAfterMidnight

เขียนพร้อมๆ กัน

กลับจำนวนนาทีที่ผ่านมาหลังเที่ยงคืนเพื่อวัตถุประสงค์ในการจุดเปิดไฟ

ตัวเลขนี้จะเกือบเท่ากับ Lighting.ClockTime ที่คูณด้วย 60

ตัวเลขนี้จะไม่เท่ากับค่าที่ให้ใน Lighting:SetMinutesAfterMidnight() เนื่องจากมันกลับมาในตอนเช้าของวันปัจจุบัน

สำหรับ Lighting รูปแบบเวลาที่จัดเป็นสตริงดูเหมือนว่าจะเป็น Lighting.TimeOfDay


ส่งค่ากลับ

จำนวนนาทีหลังเที่ยงคืน

ตัวอย่างโค้ด

Lighting:GetMinutesAfterMidnight

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

GetMoonDirection

เขียนพร้อมๆ กัน

กลับมาเป็น Vector3 ที่แสดงทิศทางของดวงจันทร์จากตำแหน่ง 0, 0, 0

หมายเหตุ, เมื่อดวงจันทร์มี 'ตั้งค่า' และไม่มีอีกต่อไป, Vector3 ที่กลับโดยหน้าฟังค์ชันนี้จะยังคงชี้ไปที่ดวงจันทร์ด้านล่างแผนที่

ผู้พัฒนาที่ต้องการเปลี่ยนตำแหน่งของดวงจันทร์ควรใช้คุณสมบัติ Lighting.ClockTime หรือ Lighting.GeographicLatitude

มีตัวแปรของคุณสมบัตินี้เพื่อการได้รับทิศทางของดวงอาทิตย์, Lighting:GetSunDirection()


ส่งค่ากลับ

Vector3 เป็นตัวแทนของทิศทางของดวงจันทร์จากตำแหน่ง 0, 0, 0

ตัวอย่างโค้ด

Lighting:GetMoonDirection

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

GetMoonPhase

กลับสถานะปัจจุบันของดวงจันทร์ ไม่มีวิธีในการเปลี่ยนแปลงสถานะของดวงจันทร์ดังนั้นจึงจะกลับมาที่ 0.75 เสมอ


ส่งค่ากลับ

GetSunDirection

เขียนพร้อมๆ กัน

กลับมาเป็น Vector3 ที่แสดงทิศทางของดวงอาทิตย์จากตำแหน่ง 0, 0, 0

หมายเหตุ, เมื่อดวงอาทิตย์ได้ตั้งและไม่มีอีกต่อไป, เวลา Vector3 ที่กลับโดยฟังก์ชันนี้จะยังคงชี้ไปที่ดวงอาทิตย์ด้านล่างแผนที่.

ผู้พัฒนาที่ต้องการเปลี่ยนตำแหน่งของดวงอาทิตย์ควรใช้คุณสมบัติ Lighting.ClockTime หรือ Lighting.GeographicLatitude

มีตัวแปรของคุณสมบัตินี้เพื่อการได้รับทิศทางของดวงจันทร์, Lighting:GetMoonDirection() .


ส่งค่ากลับ

Vector3 เป็นตัวแทนของทิศทางดวงอาทิตย์จากตำแหน่ง 0, 0, 0

ตัวอย่างโค้ด

Lighting:GetSunDirection

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

SetMinutesAfterMidnight

void

ตั้งค่า Lighting.TimeOfDay และ Lighting.ClockTime ให้เป็นเวลานาทีหลังเที่ยงคืน

ฉันจะทำสคริปต์วัน / คืนได้อย่างไร?

ตั้งค่านาทีหลังเที่ยงคืน สามารถใช้ค่านับเลขได้เช่นในวัน/คืนวัฏจักร Script โดยไม่จำเป็นต้องแปลงเป็นสตริงในรูปแบบที่ต้องการโดย <

ใช้ Lighting.TimeOfDay ต้องใช้เวลาในการปรับปรุงและรูปแบบสตริง:


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

การใช้ Lighting.ClockTime ต้องใช้เวลาในการปรับปรุง:


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

การใช้ Lighting:SetMinutesAfterMidnight() ไม่ต้องใช้การประมวลผลเพิ่มเติม:


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

พารามิเตอร์

minutes: number

จำนวนนาทีหลังเที่ยงคืน


ส่งค่ากลับ

void

ตัวอย่างโค้ด

Setting Lighting Time

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

อีเวนต์

LightingChanged

เหตุการณ์นี้เกิดขึ้นเมื่อสมบัติสมบัติ Lighting ถูกเปลี่ยนแปลงหรือสมบัติ Sky ถูกเพิ่มหรือลบออกจาก Lighting

แม้ว่าเหตุการณ์นี้จะเกิดขึ้นเมื่อส่วนใหญ่ของ Lighting เปลี่ยนแปลง ผู้พัฒนาควรระวังตัวจากข้อยกเว้นเหล่านี้:

ในกรณีที่ไม่ต้องการพฤติกรรมนี้สามารถใช้งานได้โดยการใช้เหตุการณ์ Object.Changed หรือ Object:GetPropertyChangedSignal()

พารามิเตอร์

skyChanged: bool

ตัวอย่างโค้ด

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)