From a7ac1a9881e3730be3d768ce0e505d89a0388e4e Mon Sep 17 00:00:00 2001 From: chai Date: Wed, 18 Aug 2021 09:24:21 +0800 Subject: *parameter --- Assets/Scripts/Unit/AnimationData.cs | 41 +++++++++++++++++++++++------------- 1 file changed, 26 insertions(+), 15 deletions(-) (limited to 'Assets/Scripts/Unit/AnimationData.cs') diff --git a/Assets/Scripts/Unit/AnimationData.cs b/Assets/Scripts/Unit/AnimationData.cs index a84afd9f..84cc1e4c 100644 --- a/Assets/Scripts/Unit/AnimationData.cs +++ b/Assets/Scripts/Unit/AnimationData.cs @@ -127,21 +127,32 @@ public class AnimationData : ScriptableObject return null; } - //public bool HasParameter(string parameterName, float normalizedTime) - //{ - // if (!parameters.ContainsKey(parameterName)) - // return false; - // var parameter = parameters[parameterName]; - // parameter.setters.Sort((AnimationParameter.Setter a, AnimationParameter.Setter b) => - // { - // return a.normalizedTime - b.normalizedTime < 0 ? -1 : 1; - // }); - //} - - //public float GetParameter(string parameter, float normalizedTime) - //{ - - //} + public bool HasParameter(EAnimationParameter parameterName) + { + if (!parameters.ContainsKey(parameterName)) + return false; + return true; + } + + public float GetParameter(EAnimationParameter parameterName, float normalizedTime) + { + if (!parameters.ContainsKey(parameterName)) + return 0; + var parameter = parameters[parameterName]; + parameter.setters.Sort((AnimationParameter.Setter a, AnimationParameter.Setter b) => + { + return a.normalizedTime - b.normalizedTime < 0 ? -1 : 1; + }); + float value = 0; + for (int i = 0; i < parameter.setters.Count; ++i) + { + AnimationParameter.Setter setter = parameter.setters[i]; + if (setter.normalizedTime > normalizedTime) + break; + value = setter.value; + } + return value; + } public bool HasCurve(EAnimationCurve curve) { -- cgit v1.1-26-g67d0