using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;
public class Drag : MonoBehaviour, IDragHandler
{
float distance = 10.0f;
public void OnDrag(PointerEventData eventData)
{
Vector3 mousePosition = new Vector3(Input.mousePosition.x,
Input.mousePosition.y, distance);
transform.position = mousePosition;
}
}
1. 드래그를 하기 위해서는 OnMouseDrag() 함수도 있지만, OnDrag() 함수를 사용할 수도 있다.
2. 먼저, OnDrag()를 사용하기 위해서는
using UnityEngine.EventSystems;
을 적어줘서 이벤트 시스템을 사용하겠다는 것을 표기한다.
3. MonoBehaviour뒤에 콤마(,)를 쓴 뒤 IDragHandler를 작성한다. 참고로 IDragHandler 는 인터페이스이다.
4. 3번 IDragHandler를 적으면 에러난다. 즉, 인터페이스에 선언된 메소드를 정의해줘야한다.
형태는 다음과 같다. public void OnDrag(PointerEventData eventData)
5. OnDrag()안에 드래그 했을 때, 일어날 동작들을 적으면 된다.
이 블로그에서는 마우스 드래그하는데로 오브젝트가 딸려오는 것을 구현하려고 한다.
마우스는 평면으로 움직이므로 (x,y)축만 필요하다.
z축은 위와 같이 10으로 지정해줘도 되고, 그냥 오브젝트의 z축을 그냥 기입해도 된다.
그 다음에 transform.position에 mousePosition을 넣음으로써,
드래그할때 mousePosition이 게임오브젝트 위치에 대입되어 마우스 드래그할때 오브젝트가 딸려 움직이게 된다.
이상으로 마우스 드래그를 이용하여 게임오브젝트를 움직이는 방법을 알아보았다.
'개발 > Unity & C#' 카테고리의 다른 글
[유니티] 유니티에서 버튼 클릭했을 때 쿨타임 설정하기 (0) | 2018.03.18 |
---|---|
[C#] private로 선언된 변수 겟(Get) 셋(Set) 함수 쉽게 사용하기 (0) | 2018.03.08 |
[유니티] 스크린 좌표계와 월드 좌표계 그리고 뷰포트 좌표계 (1) | 2018.03.05 |
[유니티] UGUI를 사용하는 방법... 캔버스(Canvas)에 관하여... (0) | 2018.03.05 |
[유니티] Sorting Layer을 이용하여 Sprite의 렌더링 순서를 조정... (0) | 2018.02.27 |