TimeLineCollisionTriggerSerializtion.cs 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. using System.Collections.Generic;
  2. using Fort23.UTool;
  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 TimeLineCollisionTriggerSerializtion : TimeLineAssetSerialization
  11. {
  12. public string guid;
  13. public List<Vector3> allVe = new List<Vector3>();
  14. public Vector3 off;
  15. public string startPosGuid;
  16. public string boneName;
  17. public TimeLineCollisionTriggerSerializtion()
  18. {
  19. }
  20. #if !COMBAT_SERVER
  21. public TimeLineCollisionTriggerSerializtion(PlayableDirector playableDirector, GroupTrack groupTrack,
  22. TimelineClip timelineClip) : base(groupTrack, timelineClip)
  23. {
  24. TimeLineCollisionTriggerAsset animationPlayableAsset =
  25. timelineClip.asset as TimeLineCollisionTriggerAsset;
  26. Object obj = animationPlayableAsset.GameObject.defaultValue;
  27. Debug.Log(obj);
  28. if (animationPlayableAsset.GameObject.Resolve(playableDirector.playableGraph.GetResolver()) != null)
  29. {
  30. GameObject go = animationPlayableAsset.GameObject.Resolve(playableDirector.playableGraph.GetResolver());
  31. BoxCollider2D boxCollider2D = go.GetComponent<BoxCollider2D>();
  32. if (boxCollider2D != null)
  33. {
  34. allVe = new List<Vector3>();
  35. Vector2 Half_size = boxCollider2D.size / 2;
  36. allVe.Add(new Vector3(-Half_size.x, -Half_size.y));
  37. allVe.Add(new Vector3(-Half_size.x, Half_size.y));
  38. allVe.Add(new Vector3(Half_size.x, Half_size.y));
  39. allVe.Add(new Vector3(Half_size.x, -Half_size.y));
  40. off = boxCollider2D.offset+(Vector2)boxCollider2D.transform.localPosition;
  41. }
  42. else
  43. {
  44. EdgeCollider2D edgeCollider2D = go.GetComponent<EdgeCollider2D>();
  45. if (edgeCollider2D != null)
  46. {
  47. allVe = new List<Vector3>();
  48. Vector2[] points = edgeCollider2D.points;
  49. for (int i = 0; i < edgeCollider2D.pointCount; i++)
  50. {
  51. allVe.Add(points[i]);
  52. }
  53. }
  54. off = edgeCollider2D.transform.localPosition;
  55. }
  56. guid = animationPlayableAsset.guid;
  57. startPosGuid = animationPlayableAsset.startPosGuid;
  58. }
  59. }
  60. #endif
  61. public override TimeLineEventLogicBasic CreateLogic()
  62. {
  63. return new TimeLineCollisionTriggerLogic();
  64. }
  65. }