유니티 마우스 드래그 이동 구현 방법 [유니티 C#]

게임 내에 마우스를 드래그해서 UI나 오브젝트를 이동하는 기능을 구현할 때 마우스 위치의 변화값을 이용합니다.

오늘은 마우스 위치의 변화량을 얻고, 이를 통해 드래그 이동을 구현하는 방법을 알아보겠습니다.

1. Input.GetAxis

C#
float mouseX = Input.GetAxis("Mouse X");
float mouseY = Input.GetAxis("Mouse Y");

유니티의 Input.GetAxis는 키보드, 마우스, 조이스틱 등의 움직임을 -1.0에서 1.0 사이의 값으로 반환하는 함수입니다.

이를 이용하여 여러 입력장치의 값들을 불러올 수 있으며, 위 예시에서는 ‘Mouse X’, ‘Mouse Y’를 통해 마우스의 X 변화량, Y의 변화량을 float 타입의 변수로 저장합니다.

2. 이동

C#
    [SerializeField] private float _sensitivity;
    [SerializeField] private RectTransform _rect;
    
    private void Update()
    {
        if (Input.GetMouseButton(0))
        {
            float mouseX = Input.GetAxis("Mouse X");
            float mouseY = Input.GetAxis("Mouse Y");
            Vector2 mouseDelta = new Vector2(mouseX, mouseY);
            _rect.anchoredPosition += mouseDelta * _sensitivity;
        }
    }

위 예제처럼 마우스 좌클릭을 하는 상태에서 마우스 위치의 변화량을 감지하고 이를 ‘_rect’의 위치에 더하여 드래그 이동을 구현할 수 있습니다.

‘_sensitivity’와 같은 감도 변수를 사용하여 드래그 감도를 조정할 수 있습니다.

댓글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다