
게임 내에 마우스를 드래그해서 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’와 같은 감도 변수를 사용하여 드래그 감도를 조정할 수 있습니다.



