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 expressées en utilisant le taper2>Datatype.NumberSequencerKeypoint2>. Ce type est utilisé dans des propriétés telles que 5> Class.ParticleEmitter.Size
Équivalence
Deux objets NumberSequence ne sont équivalents que si les valeurs de leur NumberSequenceKeypoint sont équivalentes, même si les deux génèrent des graphiques similaires.
Évaluation
Le type NumberSequence n'a pas de méthode intégrée pour obtenir la valeur à un certain moment/point parce que les points d'envoi peuvent avoir des enveloppes aléatoires. Cependant, en supposant que les valeurs d'envoi de vos points d'envoi 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, renvoyez la valeur première ou dernière respectivement
if time == 0 then
return sequence.Keypoints[1].Value
elseif time == 1 then
return sequence.Keypoints[#sequence.Keypoints].Value
end
-- Autrement, passez à travers chaque paire séquentiel de points clés
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 la portée alpha entre les points
local alpha = (time - currKeypoint.Time) / (nextKeypoint.Time - currKeypoint.Time)
-- Renvoie 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é
Propriétés
Un tableau de valeurs NumberSequenceKeypoint dans l'ordre croissant.