NumberSequence
*เนื้อหานี้แปลโดยใช้ AI (เวอร์ชัน Beta) และอาจมีข้อผิดพลาด หากต้องการดูหน้านี้เป็นภาษาอังกฤษ ให้คลิกที่นี่
ประเภทข้อมูล NumberSequence แทนที่ซีรีส์ของค่าตัวเลขจาก 0 ถึง 1มูลค่าตัวเลขจะถูกแสดงโดยใช้ประเภท NumberSequenceKeypointประเภทนี้ใช้ในคุณสมบัติเช่น ParticleEmitter.Size และ Beam.Transparency เพื่อกำหนดการเปลี่ยนแปลงทางตัวเลขในเวลา
เท่าเทียม
วัตถุสองตัว NumberSequence มีค่าเท่ากันเฉพาะถ้าค่าของพวกเขา NumberSequenceKeypoint เป็นเช่นเดียวกันแม้ว่าทั้งสองจะทำให้เกิดกราฟที่คล้ายกัน
การประเมิน
ประเภท NumberSequence ไม่มีวิธีในตัวสำหรับการรับค่าในเวลา/จุดที่กำหนดเพราะจุดกุญแจสามารถมีซองสุ่มได้อย่างไรก็ตาม คุณสามารถใช้ฟังก์ชันต่อไปนี้เพื่อประเมินในเวลาที่เฉพาะเจาะจงได้ ถ้าค่าตัวอักษรของจุดกุญแจของคุณทั้งหมดเป็น 0
local function evalNumberSequence(sequence: NumberSequence, time: number)
-- หากเวลาเป็น 0 หรือ 1 ให้คืนค่าแรกหรือค่าสุดท้ายตามลำดับ
if time == 0 then
return sequence.Keypoints[1].Value
elseif time == 1 then
return sequence.Keypoints[#sequence.Keypoints].Value
end
-- มิฉะนั้นให้เดินผ่านแต่ละคู่ของจุดกุญแจตามลําดับ
for i = 1, #sequence.Keypoints - 1 do
local currKeypoint = sequence.Keypoints[i]
local nextKeypoint = sequence.Keypoints[i + 1]
if time >= currKeypoint.Time and time < nextKeypoint.Time then
-- คำนวณระยะที่อัลฟาอยู่ระหว่างจุด
local alpha = (time - currKeypoint.Time) / (nextKeypoint.Time - currKeypoint.Time)
-- คืนค่าระหว่างจุดโดยใช้อัลฟา
return currKeypoint.Value + (nextKeypoint.Value - currKeypoint.Value) * alpha
end
end
end
local numberSequence = NumberSequence.new{
NumberSequenceKeypoint.new(0, 0),
NumberSequenceKeypoint.new(0.5, 1),
NumberSequenceKeypoint.new(1, 0),
}
print(evalNumberSequence(numberSequence, 0.65)) --> 0.7
สรุป
คอนสตรัคเตอร์
ส่งคืน NumberSequence ที่มีค่าเริ่มต้นและสิ้นสุดถูกตั้งค่าเป็น n ที่ให้ไว้
ส่งคืน NumberSequence ของสองจุดสำคัญที่มี n0 เป็นค่าเริ่มต้นและ n1 เป็นค่าสิ้นสุด
ส่งคืน NumberSequence จากคอลเลกชันของ NumberSequenceKeypoints
คุณสมบัติ
ชุดของค่า NumberSequenceKeypoint ในลำดับเพิ่มขึ้น
คอนสตรัคเตอร์
new
ส่งคืน NumberSequence ที่มีค่าเริ่มต้นและสิ้นสุดถูกตั้งค่าเป็น n ที่ให้ไว้
local numberSequence = NumberSequence.new(n)-- เทียบเท่ากับlocal numberSequence = NumberSequence.new{NumberSequenceKeypoint.new(0, n),NumberSequenceKeypoint.new(1, n)}
พารามิเตอร์
new
ส่งคืน NumberSequence ของสองจุดสำคัญที่มี n0 เป็นค่าเริ่มต้นและ n1 เป็นค่าสิ้นสุด
local numberSequence = NumberSequence.new(n0, n1)-- เทียบเท่ากับlocal numberSequence = NumberSequence.new{NumberSequenceKeypoint.new(0, n0),NumberSequenceKeypoint.new(1, n1)}
new
ส่งคืน NumberSequence จากคอลเลกชันของ NumberSequenceKeypointsจุดสำคัญต้องได้รับในลำดับค่าเวลาไม่ลดลงต้องมีจุดสำคัญอย่างน้อยสองจุดและต้องมีค่าเวลาของ 0 (ครั้งแรก) และ 1 (ครั้งสุดท้าย)
local numberSequence = NumberSequence.new{NumberSequenceKeypoint.new(0, 0),NumberSequenceKeypoint.new(0.5, 0.5, 0.25),NumberSequenceKeypoint.new(1, 1)}