NumberSequence
*Questo contenuto è tradotto usando AI (Beta) e potrebbe contenere errori. Per visualizzare questa pagina in inglese, clicca qui.
Il tipo di dati NumberSequence rappresenta una serie di valori numerici da 0 a 1 . I valori numerici sono espressi usando il inserisci / scrivi1> Datatype.NumberSequenzaKeypoint1> . Questo tipo viene utilizzato nelle proprietà come 4>
Uguaglianza
Due oggetti NumberSequence sono equivalenti solo se i valori dei loro NumberSequenceKeypoint sono equivalenti, anche se entrambi avrebbero dato grafici simili.
Valutazione
Il tipo NumberSequence non ha un metodo incorporato per ottenere il valore in un certo momento / punto perché i punti chiave possono avere inviti casuali. Tuttavia, supponendo che i valori degli inviti siano tutti 0, puoi utilizzare la funzione seguente per valutare in un momento specifico.
local function evalNumberSequence(sequence: NumberSequence, time: number)
-- Se il tempo è 0 o 1, restituisci il primo o l'ultimo valore rispettivamente
if time == 0 then
return sequence.Keypoints[1].Value
elseif time == 1 then
return sequence.Keypoints[#sequence.Keypoints].Value
end
-- Altrimenti, passa attraverso ciascuna coppia sequenziale di punti chiave
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
-- Calcola quanto la Alpha si trova tra i punti
local alpha = (time - currKeypoint.Time) / (nextKeypoint.Time - currKeypoint.Time)
-- Restituisci il valore tra i punti utilizzando 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
Sommario
Proprietà
Un array di NumberSequenceKeypoint valori nell'ordine crescente.