2021년 4학년 1학기 기업연계프로젝트2 컴퓨터소프트웨어공학과 <원광투어팀> 팀장 : 송유진 팀원 : 김나영, 이경희, 한유진
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

64 lines
1.6 KiB

5 years ago
  1. using UnityEngine;
  2. using UnityEngine.EventSystems;
  3. using UnityEngine.UI;
  4. public class DropImage : MonoBehaviour, IDropHandler, IPointerEnterHandler, IPointerExitHandler
  5. {
  6. public Image containerImage;
  7. public Image receivingImage;
  8. private Color normalColor;
  9. public Color highlightColor = Color.yellow;
  10. public void OnEnable()
  11. {
  12. if (containerImage != null)
  13. normalColor = containerImage.color;
  14. }
  15. public void OnDrop(PointerEventData data)
  16. {
  17. containerImage.color = normalColor;
  18. if (receivingImage == null)
  19. return;
  20. Sprite dropSprite = GetDropSprite(data);
  21. if (dropSprite != null)
  22. receivingImage.overrideSprite = dropSprite;
  23. }
  24. public void OnPointerEnter(PointerEventData data)
  25. {
  26. if (containerImage == null)
  27. return;
  28. Sprite dropSprite = GetDropSprite(data);
  29. if (dropSprite != null)
  30. containerImage.color = highlightColor;
  31. }
  32. public void OnPointerExit(PointerEventData data)
  33. {
  34. if (containerImage == null)
  35. return;
  36. containerImage.color = normalColor;
  37. }
  38. private Sprite GetDropSprite(PointerEventData data)
  39. {
  40. var originalObj = data.pointerDrag;
  41. if (originalObj == null)
  42. return null;
  43. var dragMe = originalObj.GetComponent<DragImage>();
  44. if (dragMe == null)
  45. return null;
  46. var srcImage = originalObj.GetComponent<Image>();
  47. if (srcImage == null)
  48. return null;
  49. return srcImage.sprite;
  50. }
  51. }