OpenGateOnSceneInit.cs 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. using System;
  2. using GameWorld;
  3. using UnityEngine;
  4. [RequireComponent(typeof(Collider2D))]
  5. public class OpenGateOnSceneInit : BaseBehaviour
  6. {
  7. private void Awake()
  8. {
  9. this._animator = base.GetComponent<Animator>();
  10. }
  11. private void Update()
  12. {
  13. }
  14. private void OnEnable()
  15. {
  16. EventManager.RegisterEvent<PassGateEventArgs>("PassGate", new EventManager.FBEventHandler<PassGateEventArgs>(this.OnPassGate), EventManager.ListenerQueue.Game);
  17. }
  18. private void OnDisable()
  19. {
  20. EventManager.UnregisterEvent<PassGateEventArgs>("PassGate", new EventManager.FBEventHandler<PassGateEventArgs>(this.OnPassGate), EventManager.ListenerQueue.Game);
  21. }
  22. private bool OnPassGate(string eventName, object sender, PassGateEventArgs passGateEventArgs)
  23. {
  24. if (passGateEventArgs.Status == PassGateEventArgs.PassGateStatus.Exit && this._gate != null && passGateEventArgs.MyId == this._gate.data.MyId)
  25. {
  26. this._animator.Play("Open");
  27. }
  28. return true;
  29. }
  30. [SerializeField]
  31. private SceneGate _gate;
  32. private Animator _animator;
  33. }