影片曲線上的Evaluate函式每次獲得一個值。
https://docs.unity3d.com/ScriptReference/AnimationCurve.Evaluate.html
但是(對我來說)并不清楚使用的是什么時間基準或單位。
對于ParticleSystem.MinMaxCurve,明確描述了這一點,即被評估為曲線持續時間的0到1的標準化值范圍:
https://docs.unity3d.com/ScriptReference/ParticleSystem.MinMaxCurve.Evaluate.html
歸一化的時間(在0-1的范圍內,其中1代表100%),在這個時間內 來評估該曲線。這在以下情況下有效 ParticleSystem.MinMaxCurve.mode被設定為 ParticleSystemCurveMode.Curve或ParticleSystemCurveMode.TwoCurves.
。
uj5u.com熱心網友回復:
它在大多數情況下使用0到1,但完全取決于你如何配置和使用你的......你可以很容易地擴展一個AnimationCurve的關鍵幀,在0和超過1。
然而你可以得到你的AnimationCurve的持續時間,所以基本上你可以使用
0和1之間的一個 "時間 "值。
public static class AniamtionCurveUtils
{
public static float EvaluateNormalizedTime(this AnimationCurve曲線。float normalizedTime)。
{
if(curve.length <= 0)
{
Debug.LogError("Given curve has 0 keyframes!")。
return float.NaN;
}
//獲得曲線中第一個關鍵幀的時間。
var start = curve[0].time;
if(curve.length == 1)
{
Debug.LogWarning("給定的曲線只有一個單一的關鍵幀!")。
return 開始。
}
//獲得曲線中最后一個關鍵幀的時間。
var end = curve[curve.length - 1].time。
//獲得曲線的持續時間。
var duration = end - start;
//得到去規范化的時間,將輸入的0到1映射到實際的時間范圍。
//在開始和結束之間。
var actualTime = start Mathf.Clamp(normalizedTime, 0, 1) *持續時間。
//最后使用計算出來的時間來實際評估曲線。
return curve.Evaluate(actualTime)。
}
}
然后,例如
var someValue = someCurve.EvaluateNormalizedTime(someNormalizedTime)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/329083.html
標籤:
上一篇:三維散點圖上的誤差條,點的陣列
下一篇:統一的顯示符號
