TimeLineCurveSerializtion.cs 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. using System.Collections.Generic;
  2. using CombatLibrary.CombatLibrary.CombatCore.Utility;
  3. #if !COMBAT_SERVER
  4. using UnityEngine;
  5. using UnityEngine.Playables;
  6. using UnityEngine.Timeline;
  7. #endif
  8. using UTool.CustomizeTimeLogic.FxLogic.TimeLineEventLogic;
  9. [System.Serializable]
  10. public class TimeLineCurveSerializtion : TimeLineAssetSerialization
  11. {
  12. public List<CurveInfo> CurveInfos = new List<CurveInfo>();
  13. public string guid;
  14. public TimeLineCurveSerializtion()
  15. {
  16. }
  17. #if !COMBAT_SERVER
  18. public TimeLineCurveSerializtion(PlayableDirector playableDirector, GroupTrack groupTrack, TimelineClip timelineClip) : base(groupTrack, timelineClip)
  19. {
  20. TimeLineCurveAsset timelineClipAsset = timelineClip.asset as TimeLineCurveAsset;
  21. if (timelineClipAsset.AnimationCurve != null)
  22. {
  23. Keyframe[] keys = timelineClipAsset.AnimationCurve.keys;
  24. for (int i = 0; i < keys.Length; i++)
  25. {
  26. CurveInfo curveInfo = new CurveInfo();
  27. curveInfo.t = keys[i].time;
  28. curveInfo.v = keys[i].value;
  29. curveInfo.it = keys[i].inTangent;
  30. curveInfo.ot = keys[i].outTangent;
  31. CurveInfos.Add(curveInfo);
  32. }
  33. guid = timelineClipAsset.guid;
  34. }
  35. }
  36. #endif
  37. public override TimeLineEventLogicBasic CreateLogic()
  38. {
  39. return new DefaultTimeLineLogic();
  40. }
  41. }