Guest User

Untitled

a guest
May 25th, 2018
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.18 KB | None | 0 0
  1. using UnityEngine;
  2. using UnityEngine.Events;
  3. using UnityEngine.EventSystems;
  4.  
  5. public sealed class DragableButton :
  6. MonoBehaviour ,
  7. IBeginDragHandler ,
  8. IDragHandler ,
  9. IEndDragHandler ,
  10. IPointerClickHandler
  11. {
  12. //====================================================================================
  13. // 変数(SerializeField)
  14. //====================================================================================
  15. [SerializeField, HideInInspector] private RectTransform m_rectTransform = null;
  16.  
  17. //====================================================================================
  18. // 変数
  19. //====================================================================================
  20. private bool m_isDrag;
  21.  
  22. //====================================================================================
  23. // イベント
  24. //====================================================================================
  25. public UnityEvent onClick = null;
  26.  
  27. //====================================================================================
  28. // 関数
  29. //====================================================================================
  30. /// <summary>
  31. /// リセットされる時に呼び出されます
  32. /// </summary>
  33. private void Reset()
  34. {
  35. m_rectTransform = GetComponent<RectTransform>();
  36. }
  37.  
  38. /// <summary>
  39. /// ドラッグを開始した時に呼び出されます
  40. /// </summary>
  41. public void OnBeginDrag( PointerEventData e )
  42. {
  43. m_isDrag = true;
  44. }
  45.  
  46. /// <summary>
  47. /// ドラッグ中に呼び出されます
  48. /// </summary>
  49. public void OnDrag( PointerEventData e )
  50. {
  51. m_rectTransform.position += new Vector3( e.delta.x, e.delta.y, 0f );
  52. }
  53.  
  54. /// <summary>
  55. /// ドラッグを終了した時に呼び出されます
  56. /// </summary>
  57. public void OnEndDrag( PointerEventData e )
  58. {
  59. m_isDrag = false;
  60. }
  61.  
  62. /// <summary>
  63. /// クリックされた時に呼び出されます
  64. /// </summary>
  65. public void OnPointerClick( PointerEventData e )
  66. {
  67. if ( m_isDrag ) return;
  68. onClick.Invoke();
  69. }
  70. }
Add Comment
Please, Sign In to add comment