Advertisement
Guest User

Untitled

a guest
Dec 13th, 2019
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.97 KB | None | 0 0
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. using UnityEngine.EventSystems;
  5. using DG.Tweening;
  6.  
  7. public class ScribbleMovementInteractionOnDrag : MonoBehaviour, IDragHandler, IBeginDragHandler, IEndDragHandler, IPointerUpHandler
  8. {
  9. public RectTransform scribbleGuidePlaceholder;
  10. /// <summary>
  11. /// Это гребанный костыль, я ненавижу себя за это
  12. /// </summary>
  13. public ScribbleMoveSenderOnDragHandler ScribbleGuidePlaceholderPositionOnEndDrag;
  14.  
  15. private Vector3 scribbleGuidePlaceholderPosition;
  16. private ScribbleMoveSenderOnDragHandler scribbleMoveSenderOnDragHandler;
  17.  
  18. private void Awake()
  19. {
  20. scribbleGuidePlaceholderPosition = scribbleGuidePlaceholder.position;
  21.  
  22. if (!ScribbleGuidePlaceholderPositionOnEndDrag)
  23. Debug.LogError($"in {gameObject.name} ScribbleGuidePlaceholderPositionOnEndDrag is null. Check it");
  24. }
  25.  
  26.  
  27. public void OnBeginDrag(PointerEventData eventData)
  28. {
  29. scribbleGuidePlaceholder.position = eventData.position;
  30.  
  31. if (eventData.pointerCurrentRaycast.gameObject != null)
  32. {
  33. scribbleMoveSenderOnDragHandler = eventData.pointerCurrentRaycast.gameObject.GetComponent<ScribbleMoveSenderOnDragHandler>();
  34.  
  35. if (scribbleMoveSenderOnDragHandler)
  36. {
  37. scribbleMoveSenderOnDragHandler.GetNormalizePositionOnRectGetter.SetEventData(eventData);
  38. scribbleMoveSenderOnDragHandler.SendPositionData();
  39. }
  40. }
  41. }
  42.  
  43.  
  44. public void OnDrag(PointerEventData eventData)
  45. {
  46. scribbleGuidePlaceholder.position = eventData.position;
  47.  
  48. if (eventData.pointerCurrentRaycast.gameObject != null)
  49. {
  50. scribbleMoveSenderOnDragHandler = eventData.pointerCurrentRaycast.gameObject.GetComponent<ScribbleMoveSenderOnDragHandler>();
  51.  
  52. if (scribbleMoveSenderOnDragHandler)
  53. {
  54. scribbleMoveSenderOnDragHandler.GetNormalizePositionOnRectGetter.SetEventData(eventData);
  55. scribbleMoveSenderOnDragHandler.SendPositionData();
  56. }
  57. }
  58. }
  59.  
  60. public void OnEndDrag(PointerEventData eventData)
  61. {
  62. ScribbleGuidePlaceholderPositionOnEndDrag.SendDefaultPositionData();
  63. ScribbleGuidePlaceholderPositionOnEndDrag.GetNormalizePositionOnRectGetter.SetNullEventData(eventData);
  64. scribbleGuidePlaceholder.DOMove(scribbleGuidePlaceholderPosition, 0.25f);
  65. }
  66.  
  67. public void OnPointerUp(PointerEventData eventData)
  68. {
  69. ScribbleGuidePlaceholderPositionOnEndDrag.SendDefaultPositionData();
  70. ScribbleGuidePlaceholderPositionOnEndDrag.GetNormalizePositionOnRectGetter.SetNullEventData(eventData);
  71. scribbleGuidePlaceholder.DOMove(scribbleGuidePlaceholderPosition, 0.25f);
  72. }
  73.  
  74. private void OnDisable()
  75. {
  76. scribbleGuidePlaceholder.position = scribbleGuidePlaceholderPosition;
  77. }
  78. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement