diff options
author | chai <chaifix@163.com> | 2021-09-02 13:01:49 +0800 |
---|---|---|
committer | chai <chaifix@163.com> | 2021-09-02 13:01:49 +0800 |
commit | adb364a79f5dd69de08f72072cc2261131314e53 (patch) | |
tree | c5037743a53d2f083cb5b07d8726fe48c1f06660 /Assets/Scripts/Unit/AnimationData.cs | |
parent | 3ad68338dff5229d3fd8ec9f3ee994d7e37fb0ed (diff) |
+override rootmotion
Diffstat (limited to 'Assets/Scripts/Unit/AnimationData.cs')
-rw-r--r-- | Assets/Scripts/Unit/AnimationData.cs | 48 |
1 files changed, 44 insertions, 4 deletions
diff --git a/Assets/Scripts/Unit/AnimationData.cs b/Assets/Scripts/Unit/AnimationData.cs index 4114966c..80891d83 100644 --- a/Assets/Scripts/Unit/AnimationData.cs +++ b/Assets/Scripts/Unit/AnimationData.cs @@ -76,14 +76,24 @@ public enum EAnimationParameter [Serializable]
public class ParameterDictionary : SerializableDictionary<EAnimationParameter, AnimationParameter> { }
+[Serializable]
public class RootMotionOverrideData
{
- public class PosData
+ [Serializable]
+ public class PosData
{
- Vector3 position;
- float frame;
+ [SerializeField] Vector3 position;
+ [SerializeField] float frame;
}
- List<PosData> positions;
+ [SerializeField] public List<PosData> positions;
+ public RootMotionOverrideData()
+ {
+ positions = new List<PosData>();
+ }
+ public Vector3 GetPosition(float frame)
+ {
+ return Vector3.zero;
+ }
}
// 某个动画的数据,包括帧事件、碰撞盒、速度曲线
@@ -334,6 +344,28 @@ public class AnimationData : ScriptableObject return events;
}
+ public int GetMaxAnimationEventsCount()
+ {
+ List<int> frames = GetAnimationEventFrameIndices();
+ if(frames == null)
+ {
+ ListPool<int>.Release(frames);
+ return 0;
+ }
+ int count = 0;
+ for(int i = 0; i < frames.Count; ++i)
+ {
+ List<AnimationEventBase> events = GetAnimationEventsAtFrame(frames[i]);
+ if (count < events.Count)
+ {
+ count = events.Count;
+ }
+ ListPool<AnimationEventBase>.Release(events);
+ }
+ ListPool<int>.Release(frames);
+ return count;
+ }
+
public List<int> GetAnimationEventFrameIndices()
{
if (animationEvents == null)
@@ -359,7 +391,15 @@ public class AnimationData : ScriptableObject }
}
+ public void AddRootMotionOverriderData( )
+ {
+ this.overrideRootMotion = new RootMotionOverrideData();
+ }
+ public void DeleteRootMotionOverrideData()
+ {
+ this.overrideRootMotion = null;
+ }
#if UNITY_EDITOR
public void OnSaveToDisk()
|