TimeLineAssetSerialization.cs 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. using System;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. #if !COMBAT_SERVER
  5. using UnityEngine;
  6. using UnityEngine.Timeline;
  7. #endif
  8. [System.Serializable]
  9. public abstract class TimeLineAssetSerialization
  10. {
  11. public bool isEquip;
  12. public int equipId;
  13. public string groupName;
  14. public bool isActivity;
  15. public float startTime;
  16. public float endTime;
  17. public float continuedTime;
  18. public FXTargetType targetEntityType;
  19. /// <summary>
  20. /// 总时间
  21. /// </summary>
  22. public float totalTime;
  23. public TimeLineAssetSerialization Clone()
  24. {
  25. TimeLineAssetSerialization timeLineAssetSerialization = (TimeLineAssetSerialization) this.MemberwiseClone();
  26. ProClone(timeLineAssetSerialization);
  27. return timeLineAssetSerialization;
  28. }
  29. protected void ProClone(TimeLineAssetSerialization newData)
  30. {
  31. }
  32. public TimeLineAssetSerialization()
  33. {
  34. }
  35. #if !COMBAT_SERVER
  36. public void SettingAssetInfo(GroupTrack trackAsset)
  37. {
  38. if (trackAsset == null)
  39. {
  40. return;
  41. }
  42. // isEquip = trackAsset.isEquip;
  43. // equipId = trackAsset.equipId;
  44. }
  45. public TimeLineAssetSerialization(GroupTrack groupTrack, TimelineClip timelineClip)
  46. {
  47. SettingAssetInfo(groupTrack);
  48. GroupTrack upGroup = groupTrack;
  49. GroupTrack rooGroupTrack = groupTrack;
  50. while (rooGroupTrack != null)
  51. {
  52. rooGroupTrack = rooGroupTrack.GetGroup();
  53. if (rooGroupTrack != null)
  54. {
  55. groupTrack = rooGroupTrack;
  56. }
  57. }
  58. groupName = groupTrack.name.Split('@')[0];
  59. isActivity = groupTrack.mutedInHierarchy;
  60. startTime = (float) timelineClip.start;
  61. endTime = (float) timelineClip.end;
  62. continuedTime = (float) timelineClip.duration;
  63. }
  64. public string ToJson()
  65. {
  66. return JsonManager.ToJson(this);
  67. }
  68. #endif
  69. public abstract TimeLineEventLogicBasic CreateLogic();
  70. }