NumberSequence
*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.
Loại dữ liệu NumberSequence đại diện cho một loạt các giá trị số từ 0 đến 1 .Các giá trị số được biểu hiện bằng cách sử dụng kiểu NumberSequenceKeypoint.Loại này được sử dụng trong các tính năng như ParticleEmitter.Size và Beam.Transparency để định nghĩa một thay đổi số theo thời gian.
Bình đẳng
Hai đối tượng NumberSequence chỉ tương đương nếu giá trị của chúng NumberSequenceKeypoint tương đương, ngay cả khi cả hai sẽ dẫn đến các đồ thị tương tự.
Đánh giá
Loại NumberSequence không có phương pháp tích hợp sẵn để lấy giá trị vào một thời điểm/điểm nhất định vì các điểm chìa khóa có thể có phong bì ngẫu nhiên.Tuy nhiên, cho rằng giá trị phong bì của các điểm chính của bạn là tất cả 0, bạn có thể sử dụng chức năng sau để đánh giá vào một thời điểm cụ thể.
local function evalNumberSequence(sequence: NumberSequence, time: number)
-- Nếu thời gian là 0 hoặc 1, trả lại giá trị đầu tiên hoặc cuối cùng tương ứng
if time == 0 then
return sequence.Keypoints[1].Value
elseif time == 1 then
return sequence.Keypoints[#sequence.Keypoints].Value
end
-- Nếu không, bước qua mỗi cặp tuần tự của điểm chính
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
-- Tính xa nhau bao nhiêu alpha giữa các điểm
local alpha = (time - currKeypoint.Time) / (nextKeypoint.Time - currKeypoint.Time)
-- Trả giá trị giữa các điểm bằng cách sử dụng alpha
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
Tóm Tắt
Người Tạo
Trả về một NumberSequence với các giá trị bắt đầu và kết thúc được đặt thành n cung cấp.
Trả về một NumberSequence của hai điểm chính với n0 là giá trị bắt đầu và n1 là giá trị cuối cùng.
Trả về một NumberSequence từ một mảng của NumberSequenceKeypoints .
Thuộc Tính
Một mảng của NumberSequenceKeypoint giá trị theo thứ tự tăng dần.
Người Tạo
new
Trả về một NumberSequence với các giá trị bắt đầu và kết thúc được đặt thành n cung cấp.
local numberSequence = NumberSequence.new(n)-- Tương đương vớilocal numberSequence = NumberSequence.new{NumberSequenceKeypoint.new(0, n),NumberSequenceKeypoint.new(1, n)}
Tham Số
new
Trả về một NumberSequence của hai điểm chính với n0 là giá trị bắt đầu và n1 là giá trị cuối cùng.
local numberSequence = NumberSequence.new(n0, n1)-- Tương đương vớilocal numberSequence = NumberSequence.new{NumberSequenceKeypoint.new(0, n0),NumberSequenceKeypoint.new(1, n1)}
new
Trả về một NumberSequence từ một mảng của NumberSequenceKeypoints .Các điểm chính phải được cung cấp theo thứ tự giá trị thời gian không xuống dốc.Ít nhất hai điểm chính phải được cung cấp, và chúng phải có giá trị thời gian là 0 (đầu tiên) và 1 (cuối cùng).
local numberSequence = NumberSequence.new{NumberSequenceKeypoint.new(0, 0),NumberSequenceKeypoint.new(0.5, 0.5, 0.25),NumberSequenceKeypoint.new(1, 1)}