NumberSequence
*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.
Le type de données NumberSequence représente une série de valeurs numériques de 0 à 1 .Les valeurs numériques sont exprimées en utilisant le taperNumberSequenceKeypoint.Ce type est utilisé dans des propriétés telles que ParticleEmitter.Size et Beam.Transparency pour définir un changement numérique au fil du temps.
Égalité
Deux objets NumberSequence équivalents ne sont équivalents que si les valeurs de leurs NumberSequenceKeypoint sont équivalentes, même si les deux aboutissent à des graphiques similaires.
Évaluation
Le type NumberSequence n'a pas de méthode intégrée pour obtenir la valeur à un certain moment/point car les points clés peuvent avoir des enveloppes aléatoires.Cependant, en supposant que les valeurs d'enveloppe de vos points clés sont toutes 0, vous pouvez utiliser la fonction suivante pour évaluer à un moment spécifique.
local function evalNumberSequence(sequence: NumberSequence, time: number)
-- Si le temps est 0 ou 1, retournez la première ou la dernière valeur respectivement
if time == 0 then
return sequence.Keypoints[1].Value
elseif time == 1 then
return sequence.Keypoints[#sequence.Keypoints].Value
end
-- Sinon, passez en revue chaque paire séquentielle de points de clé
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
-- Calculer à quelle distance l'alpha se trouve entre les points
local alpha = (time - currKeypoint.Time) / (nextKeypoint.Time - currKeypoint.Time)
-- Retourner la valeur entre les points en utilisant 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
Résumé
Constructeurs
Renvoie un NumberSequence avec les valeurs de début et de fin définies sur les valeurs fournies n.
Retourne un NumberSequence de deux points clés avec n0 comme valeur de départ et n1 comme valeur de fin.
Retourne un NumberSequence d'une liste de NumberSequenceKeypoints.
Propriétés
Un ensemble de valeurs NumberSequenceKeypoint en ordre croissant.
Constructeurs
new
Renvoie un NumberSequence avec les valeurs de début et de fin définies sur les valeurs fournies n.
local numberSequence = NumberSequence.new(n)-- Équivalent àlocal numberSequence = NumberSequence.new{NumberSequenceKeypoint.new(0, n),NumberSequenceKeypoint.new(1, n)}
Paramètres
new
Retourne un NumberSequence de deux points clés avec n0 comme valeur de départ et n1 comme valeur de fin.
local numberSequence = NumberSequence.new(n0, n1)-- Équivalent àlocal numberSequence = NumberSequence.new{NumberSequenceKeypoint.new(0, n0),NumberSequenceKeypoint.new(1, n1)}
new
Retourne un NumberSequence d'une liste de NumberSequenceKeypoints.Les points clés doivent être fournis dans un ordre de valeur temporelle non décroissante.Au moins deux points clés doivent être fournis, et ils doivent avoir une valeur de temps de 0 (premier) et de 1 (dernier).
local numberSequence = NumberSequence.new{NumberSequenceKeypoint.new(0, 0),NumberSequenceKeypoint.new(0.5, 0.5, 0.25),NumberSequenceKeypoint.new(1, 1)}