UIBattleMouseMove.cs 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. using UnityEngine;
  2. using System.Collections;
  3. using UnityEngine.EventSystems;
  4. using UnityEngine.Events;
  5. using System.Collections.Generic;
  6. public class UIBattleMouseMove : MonoBehaviour
  7. {
  8. bool startMoving = false;
  9. UIEventTriggerListener trigger;
  10. CoreEvent<Vector2> startCE = new CoreEvent<Vector2>(ECoreEventType.EID_START_MOVE_MOUSE, Vector2.zero);
  11. CoreEvent<Vector2> ce = new CoreEvent<Vector2>(ECoreEventType.EID_MOUSE_DELTA, Vector2.zero);
  12. CoreEvent<Vector2> endCE = new CoreEvent<Vector2>(ECoreEventType.EID_END_MOVE_MOUSE, Vector2.zero);
  13. private void Start()
  14. {
  15. trigger = UIEventTriggerListener.Get(this.gameObject);
  16. trigger.onBeginDrag = OnBeginDrag;
  17. trigger.onDrag = OnDrag;
  18. trigger.onEndDrag = OnEndDrag;
  19. trigger.onPointerExit = OnDeselect;
  20. }
  21. private void OnBeginDrag()
  22. {
  23. startMoving = true;
  24. startCE.SetData(UIEventTriggerListener.currentEventData.delta);
  25. EventMgr.DispatchEvent<Vector2>(startCE);
  26. }
  27. private void OnDrag()
  28. {
  29. if(startMoving)
  30. {
  31. Vector2 delta = UIEventTriggerListener.currentEventData.delta;
  32. ce.SetData(delta);
  33. EventMgr.DispatchEvent<Vector2>(ce);
  34. }
  35. }
  36. private void OnEndDrag()
  37. {
  38. if(startMoving)
  39. {
  40. startMoving = false;
  41. endCE.SetData(UIEventTriggerListener.currentEventData.delta);
  42. EventMgr.DispatchEvent<Vector2>(endCE);
  43. }
  44. }
  45. private void OnDeselect()
  46. {
  47. //OnEndDrag();
  48. }
  49. }