BattleAnimatorControlTools.cs 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. using System;
  2. using GameWorld;
  3. using UnityEngine;
  4. [RequireComponent(typeof(Animator))]
  5. public class BattleAnimatorControlTools : BaseBehaviour
  6. {
  7. private void Awake()
  8. {
  9. this._animator = base.GetComponent<Animator>();
  10. }
  11. private void OnEnable()
  12. {
  13. EventManager.RegisterEvent<BattleEventArgs>("Battle", new EventManager.FBEventHandler<BattleEventArgs>(this.OnBattle), EventManager.ListenerQueue.Game);
  14. }
  15. private void OnDisable()
  16. {
  17. EventManager.UnregisterEvent<BattleEventArgs>("Battle", new EventManager.FBEventHandler<BattleEventArgs>(this.OnBattle), EventManager.ListenerQueue.Game);
  18. }
  19. private bool OnBattle(string eventName, object sender, BattleEventArgs battleEventArgs)
  20. {
  21. BattleEventArgs.BattleStatus status = battleEventArgs.Status;
  22. if (status != BattleEventArgs.BattleStatus.Begin)
  23. {
  24. if (status != BattleEventArgs.BattleStatus.End)
  25. {
  26. throw new ArgumentOutOfRangeException();
  27. }
  28. this._animator.SetTrigger(this._battleEndTriggerName);
  29. this._animator.SetBool(this._isInBattle, false);
  30. }
  31. else
  32. {
  33. this._animator.SetTrigger(this._battleBeginTriggerName);
  34. this._animator.SetBool(this._isInBattle, true);
  35. }
  36. return true;
  37. }
  38. [SerializeField]
  39. private string _battleBeginTriggerName = "BattleBegin";
  40. [SerializeField]
  41. private string _battleEndTriggerName = "BattleEnd";
  42. [SerializeField]
  43. private string _isInBattle = "IsInBattle";
  44. private Animator _animator;
  45. }