CameraShakingAsset.cs 1.2 KB

12345678910111213141516171819202122232425262728293031
  1. using CombatLibrary.CombatLibrary.CombatCore.CustomizeTime.CameraShakingAsset;
  2. using UnityEngine;
  3. using UnityEngine.Playables;
  4. using Utility;
  5. [System.Serializable]
  6. public class CameraShakingAsset : CustomizePlayableAsset
  7. {
  8. [Header("激活对象")] public ExposedReference<Camera> camera;
  9. [Header("抖动方向")] public ShakeDirection direction;
  10. // [Header("曲线类型")] public int type;
  11. [Header("抖动时间")] public float totalTime;
  12. [Header("抖动次数")] public int count;
  13. [Header("抖动强度")] public float qiangDu;
  14. [Header("动画曲线")] public AnimationCurve AnimationCurve;
  15. public override Playable CreatePlayable(PlayableGraph graph, GameObject owner)
  16. {
  17. ScriptPlayable<CameraShakingBehaviour> playable =
  18. ScriptPlayable<CameraShakingBehaviour>.Create(graph);
  19. playable.GetBehaviour().direction = direction;
  20. // playable.GetBehaviour().type = type;
  21. playable.GetBehaviour().totalTime = totalTime;
  22. playable.GetBehaviour().count = count;
  23. playable.GetBehaviour().qiangDu = qiangDu;
  24. playable.GetBehaviour().AnimationCurve = AnimationCurve;
  25. playable.GetBehaviour().Camera = camera.Resolve(graph.GetResolver());
  26. return playable;
  27. }
  28. }