summaryrefslogtreecommitdiff
path: root/Assets/Scripts/Unit/AnimationData.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Assets/Scripts/Unit/AnimationData.cs')
-rw-r--r--Assets/Scripts/Unit/AnimationData.cs41
1 files changed, 26 insertions, 15 deletions
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)
{