NumberSequence
*Konten ini diterjemahkan menggunakan AI (Beta) dan mungkin mengandung kesalahan. Untuk melihat halaman ini dalam bahasa Inggris, klik di sini.
Jenis data NumberSequence mewakili serangkaian nilai angka dari 0 sampai 1 .Nilai angka diungkapkan menggunakan tipe NumberSequenceKeypoint.Jenis ini digunakan di properti seperti ParticleEmitter.Size dan Beam.Transparency untuk mendefinisikan perubahan numerik seiring waktu.
Kesetaraan
Dua objek NumberSequence hanya setara jika nilai mereka NumberSequenceKeypoint sama, bahkan jika keduanya akan menghasilkan grafik serupa.
Evaluasi
Tipe NumberSequence tidak memiliki metode bawaan untuk mendapatkan nilai pada waktu/titik tertentu karena titik kunci dapat memiliki amplop acak.Namun, asumsi nilai amplop dari titik kunci Anda semua 0 , Anda dapat menggunakan fungsi berikut untuk mengevaluasi pada waktu tertentu.
local function evalNumberSequence(sequence: NumberSequence, time: number)
-- Jika waktu adalah 0 atau 1, return nilai pertama atau terakhir masing-masing
if time == 0 then
return sequence.Keypoints[1].Value
elseif time == 1 then
return sequence.Keypoints[#sequence.Keypoints].Value
end
-- Jika tidak, melalui setiap pasangan urutan keypoints
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
-- Hitung seberapa jauh alfa berada di antara titik
local alpha = (time - currKeypoint.Time) / (nextKeypoint.Time - currKeypoint.Time)
-- Kembalikan nilai di antara titik menggunakan alfa
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
Rangkuman
Konstruktor
Kembalikan NumberSequence dengan nilai awal dan akhir yang ditetapkan ke n yang disediakan.
Kembalikan NumberSequence dari dua titik kunci dengan n0 sebagai nilai awal dan n1 sebagai nilai akhir.
Kembalikan NumberSequence dari array NumberSequenceKeypoints .
Properti
Sebuah array dari NumberSequenceKeypoint nilai dalam urutan menaik.
Konstruktor
new
Kembalikan NumberSequence dengan nilai awal dan akhir yang ditetapkan ke n yang disediakan.
local numberSequence = NumberSequence.new(n)-- Sama denganlocal numberSequence = NumberSequence.new{NumberSequenceKeypoint.new(0, n),NumberSequenceKeypoint.new(1, n)}
Parameter
new
Kembalikan NumberSequence dari dua titik kunci dengan n0 sebagai nilai awal dan n1 sebagai nilai akhir.
local numberSequence = NumberSequence.new(n0, n1)-- Sama denganlocal numberSequence = NumberSequence.new{NumberSequenceKeypoint.new(0, n0),NumberSequenceKeypoint.new(1, n1)}
new
Kembalikan NumberSequence dari array NumberSequenceKeypoints .Kunci poin harus disediakan dalam urutan nilai waktu tidak menurun.Setidaknya dua titik kunci harus disediakan, dan mereka harus memiliki nilai waktu 0 (pertama) dan 1 (terakhir).
local numberSequence = NumberSequence.new{NumberSequenceKeypoint.new(0, 0),NumberSequenceKeypoint.new(0.5, 0.5, 0.25),NumberSequenceKeypoint.new(1, 1)}