NumberSequence

Tampilkan yang Tidak Digunakan Lagi

*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

Properti

Konstruktor

new

Kembalikan NumberSequence dengan nilai awal dan akhir yang ditetapkan ke n yang disediakan.


local numberSequence = NumberSequence.new(n)
-- Sama dengan
local 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 dengan
local numberSequence = NumberSequence.new{
NumberSequenceKeypoint.new(0, n0),
NumberSequenceKeypoint.new(1, n1)
}

Parameter

n0: number
n1: number

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)
}

Parameter

Keypoints: Array

Properti

Keypoints

Sebuah array yang berisi NumberSequenceKeypoint nilai untuk NumberSequence.