NumberSequence
*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.
Der Datentyp repräsentiert eine Reihe von Zahlwerten von bis .Die Zahlwerte werden mit dem eingebenNumberSequenceKeypoint ausgedrückt.Dieser Typ wird in Eigenschaften wie ParticleEmitter.Size und Beam.Transparency verwendet, um eine numerische Änderung im Laufe der Zeit zu definieren.
Gleichheit
Zwei NumberSequence Objekte sind nur dann gleichwertig, wenn die Werte ihrer NumberSequenceKeypoint Werte gleich sind, auch wenn beide zu ähnlichen Diagrammen führen würden.
Bewertung
Der Typ NumberSequence hat keine integrierte Methode zum Abrufen des Werts zu einem bestimmten Zeitpunkt/Punkt, weil Schlüsselpunkte zufällige Umschläge haben können.Wenn Sie jedoch davon ausgehen, dass die Umschaltswerte Ihrer Schlüsselpunkte alle 0 sind, können Sie die folgende Funktion verwenden, um zu einer bestimmten Zeit zu bewerten.
local function evalNumberSequence(sequence: NumberSequence, time: number)
-- Wenn die Zeit 0 oder 1 ist, gib den ersten oder letzten Wert jeweils zurück
if time == 0 then
return sequence.Keypoints[1].Value
elseif time == 1 then
return sequence.Keypoints[#sequence.Keypoints].Value
end
-- Ansonsten durchlaufen Sie jedes sequenzielle Paar von Schlüsselpunkten
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
-- Berechnen, wie weit sich Alpha zwischen den Punkten befindet
local alpha = (time - currKeypoint.Time) / (nextKeypoint.Time - currKeypoint.Time)
-- Gib den Wert zwischen den Punkten mit alpha zurück
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
Zusammenfassung
Konstrukteure
Gibt eine NumberSequence mit den Start- und Endwerten, die auf die angegebenen n festgelegt sind, zurück.
Gibt eine NumberSequence von zwei Schlüsselpunkten mit n0 als Startwert und n1 als Endwert zurück.
Gibt eine NumberSequence von einem Array von NumberSequenceKeypoints zurück.
Eigenschaften
Ein Array von NumberSequenceKeypoint Werten in aufsteigender Reihenfolge.
Konstrukteure
new
Gibt eine NumberSequence mit den Start- und Endwerten, die auf die angegebenen n festgelegt sind, zurück.
local numberSequence = NumberSequence.new(n)-- Äquivalent zulocal numberSequence = NumberSequence.new{NumberSequenceKeypoint.new(0, n),NumberSequenceKeypoint.new(1, n)}
Parameter
new
Gibt eine NumberSequence von zwei Schlüsselpunkten mit n0 als Startwert und n1 als Endwert zurück.
local numberSequence = NumberSequence.new(n0, n1)-- Äquivalent zulocal numberSequence = NumberSequence.new{NumberSequenceKeypoint.new(0, n0),NumberSequenceKeypoint.new(1, n1)}
new
Gibt eine NumberSequence von einem Array von NumberSequenceKeypoints zurück.Die Schlüsselpunkte müssen in einer nicht absteigenden Zeitwerte-Reihenfolge bereitgestellt werden.Mindestens zwei Schlüsselpunkte müssen bereitgestellt werden, und sie müssen einen Zeitwert von 0 (erst) und 1 (letzter) haben.
local numberSequence = NumberSequence.new{NumberSequenceKeypoint.new(0, 0),NumberSequenceKeypoint.new(0.5, 0.5, 0.25),NumberSequenceKeypoint.new(1, 1)}