◆ 필요한 기능
해당 오브젝트를 드래그 앤 드롭하여 드롭 위치로 옮기는 것
코드
UI 에 적용 가능한 코드
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;
public class Mousedrag : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDragHandler
{
public void OnBeginDrag(PointerEventData eventData)
{
Debug.Log("Begin Drag");
}
public void Ondrag(PointerEventData eventData)
{
transform.position = eventData.position;
}
public void OnDrag(PointerEventData eventData)
{
Debug.Log("Drop");
}
public void OnEndDrag(PointerEventData eventData)
{
Debug.Log("Begin Drag");
}
}
한 번 돌리고 나니 문제점 발생
캐릭터 스크립트를 붙여도 콘솔에 로그가 찍히지 않음
스프라이트에는 디버그 로그가 안 찍힘...
아래와 같이 코드 다시 제작
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;
public class Mousedrag : MonoBehaviour
{
private void Update()
{
}
private void OnMouseDown()
{
Debug.Log("오브젝트 터치");
}
private void OnMouseDrag()
{
Vector2 mouseDragPosition = new Vector2(Input.mousePosition.x, Input.mousePosition.y);
Vector2 worldObjectPosition = Camera.main.ScreenToWorldPoint(mouseDragPosition);
this.transform.position = worldObjectPosition;
Debug.Log("오브젝트 드래그");
}
private void OnMouseUp()
{
Debug.Log("오브젝트에서 손 뗌");
}
}
위와 같이 코드 다시 입력 후 콘솔 확인
잘 되는 것을 확인할 수 있다.
'게임 기획 > Game Programming' 카테고리의 다른 글
[Unity/유니티] 유니티 오브젝트 합치기 (merge objects) (0) | 2024.11.17 |
---|