2015년 2월 12일 목요일

[Unity3D] 마우스로 객체 드래그하기 (DragGameObject)

게임상에서 테스트 용도로 객체를 마우스로 이동시키고 싶을 때, 사용하기 편하게 해주는 스크립트입니다. Procedural 예제에 있던 겁니다.

사용법은 아래의 코드로 생성된 스크립트 파일을 원하는 객체에 드래그 해주시면 됩니다. 쉽죠.

using UnityEngine;
using System.Collections;
 
public class DragGameObject : MonoBehaviour {
     
    IEnumerator OnMouseDown()
    {
        Vector3 scrSpace = Camera.main.WorldToScreenPoint (transform.position);
        Vector3 offset = transform.position - Camera.main.ScreenToWorldPoint (new Vector3 (Input.mousePosition.x, Input.mousePosition.y, scrSpace.z));
         
        while (Input.GetMouseButton(0))
        {
            Vector3 curScreenSpace = new Vector3 (Input.mousePosition.x, Input.mousePosition.y, scrSpace.z);<br>
            Vector3 curPosition = Camera.main.ScreenToWorldPoint(curScreenSpace) + offset;
            transform.position = curPosition;
            yield return null;
        }
    }
}



같은 방법으로 충돌 이벤트함수를 코루틴으로 정의하고 업데이트 함수와 플래그 설정없이 자체적으로 돌리면 아주 간결하게 코딩이 가능합니다.

(http://kpro.tistory.com/80)

댓글 없음:

댓글 쓰기