TimeLineCurveSerializtion.cs 1.4 KB

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