PrepareDrawPlayAreaState.cs 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. using UnityEngine.EventSystems;
  5. public class PrepareDrawPlayAreaState : AbstractPlayAreaState<SafetyAreaMono>
  6. {
  7. public override void OnStateEnter(object data)
  8. {
  9. ShowPlayAreaWaitingDrawUI();
  10. reference.playAreaWaitingDrawUI.OnSwitchToStationaryAreaClick += SwitchToStationaryAreaStep;
  11. reference.playAreaWaitingDrawUI.OnBackClick += SwitchToGroundHeightStep;
  12. }
  13. public override void OnStateExit(object data)
  14. {
  15. reference.playAreaWaitingDrawUI.OnSwitchToStationaryAreaClick -= SwitchToStationaryAreaStep;
  16. reference.playAreaWaitingDrawUI.OnBackClick -= SwitchToGroundHeightStep;
  17. HidePlayAreaWaitingDrawUI();
  18. }
  19. private void SwitchToStationaryAreaStep()
  20. {
  21. SafetyAreaManager.Instance.ChangeStep(SafetyAreaStepEnum.StationaryArea);
  22. }
  23. private void SwitchToGroundHeightStep()
  24. {
  25. SafetyAreaManager.Instance.ChangeStep(SafetyAreaStepEnum.GroundHeight);
  26. }
  27. public void ShowPlayAreaWaitingDrawUI()
  28. {
  29. reference.playAreaWaitingDrawUI.gameObject.SetActive(true);
  30. reference.playAreaWaitingDrawUI.Init();
  31. reference.safetyPlaneMono.RegistPointerUpEvent(ChangePlayAreaOKStep);
  32. }
  33. public void HidePlayAreaWaitingDrawUI()
  34. {
  35. reference.safetyPlaneMono.UnRegistPointerUpEvent(ChangePlayAreaOKStep);
  36. reference.playAreaWaitingDrawUI.Release();
  37. reference.playAreaWaitingDrawUI.gameObject.SetActive(false);
  38. }
  39. private void ChangePlayAreaOKStep(PointerEventData pointerEventData)
  40. {
  41. reference.ChangePlayAreaState(PlayAreaStateEnum.OK);
  42. }
  43. }