Unity/학습

유니티에서 마우스 휠 사용법

wh011202 2025. 2. 6. 17:07

이것이 내가 유니티에서 사용해본 방법이다.

public class FollowCam : MonoBehaviour
{
    public Transform targetTr;//따라갈 타겟

    Transform camTr;//카메라 트랜스폼

    //따라갈 대상으로부터 떨어질 거리
    [Range(2.0f, 20.0f)]
    //public float distance = 10.0f;
    public float distance = 3.5f;

    //Y축 높이 바꿀것
    [Range(0f, 10.0f)]
    //public float height = 2.0f;
    public float height = 3.17f;

    //X축 높이 바꿀것
    [Range(0f, 10.0f)]
    //public float targetOffset = 2.0f;
    public float targetOffset = 1.38f;


    void Start()
    {
        camTr = GetComponent<Transform>();

    }

    // Update is called once per frame
    void Update()
    {
        float wheelInput = Input.GetAxis("Mouse ScrollWheel");
    
        camTr.position = targetTr.position + (-targetTr.forward * distance) + (Vector3.up * height);

        camTr.LookAt(targetTr.position + targetTr.up * targetOffset);//카메라가 해당 타겟을 항상 바라보게 됨.
        
        distance = Mathf.Clamp(distance - wheelInput, 1f, 20f);

 

 

결국 이것저것 써놨지만 아래와 다른점은 단 하나다.

 

이렇게 클램프를 사용해서 제한을 주고 바로 적용을 했다.

distance = Mathf.Clamp(distance - wheelInput, 1f, 20f);

 

이렇게 한이유는 그냥 증감치로 넣었을경우 20.1로 들어가버려서 if문으로 예외처리하려면 넘었을때 처리가 또 들어가야하기떄문에 코드가 조금 늘어지기 떄문이다.

 

 

 

 

 

//아래는 참고한 사이트의 정보이다.//

 

게임에서는 마우스 커서 위치를 확인하는 것도 굉장히 많이 사용되는 편이다. 마우스 커서 위치는 다음과 같이 가져올 수 있다.

 

void Update()
{
    Vector3 mousePos = Input.mousePosition;
}

 

참고로 프로그램 화면의 왼쪽 아래가 (0, 0)이다.

 

 

 

마우스 휠 입력 처리

 

최근에 사용되는 마우스의 경우에는 기본으로 휠이 장착되어 있다. 휠 동작의 경우에는 휠을 돌리면 화면이 위/아래로 스크롤된다거나, 화면이 확대/축소 되는 방식으로 지원된다.

 

마우스 휠 입력을 처리하는 방법은 두 가지가 있는데 그 예시는 다음과 같다.

 

void Update()
{
    float wheelInput = Input.GetAxis("Mouse ScrollWheel");
    if (wheelInput > 0)
    {
        // 휠을 밀어 돌렸을 때의 처리 ↑
    }
    else if (wheelInput < 0)
    {
        // 휠을 당겨 올렸을 때의 처리 ↓
    }

    Vector2 wheelInput2 = Input.mouseScrollDelta;
    if (wheelInput2.y > 0)
    {
        // 휠을 밀어 돌렸을 때의 처리 ↑
    }
    else if (wheelInput2.y < 0)
    {
        // 휠을 당겨 올렸을 때의 처리 ↓
    }
}

 

추가로, 휠을 한 틱 돌렸을 때, 변경되는 값은 0.1이다.

출처: https://wergia.tistory.com/117 [베르의 프로그래밍 노트:티스토리]