더듬이의 헬로월드

Hello, World!

게임 엔진/유니티,Unity

[C#] 유니티에서 마우스 휠로 카메라를 동작하는 방법

더듬이 2023. 2. 26. 15:15
728x90

유니티에서 마우스 휠로 동작하는 방법은 다음과 같습니다.

  1. 마우스 휠 동작을 감지할 객체를 만듭니다. 보통은 카메라나 플레이어 캐릭터 등을 사용합니다.
  2. Update() 메서드에서 Input.GetAxis("Mouse ScrollWheel")을 호출하여 마우스 휠의 움직임을 감지합니다.
  3. 마우스 휠의 움직임에 따라 원하는 동작을 수행합니다. 예를 들어, 카메라를 줌인/줌아웃하거나 플레이어 캐릭터의 이동 속도를 변경하는 등의 동작을 할 수 있습니다.

다음은 간단한 예제 코드입니다. 이 예제에서는 카메라의 거리를 마우스 휠의 움직임에 따라 조절합니다.

using UnityEngine;

public class CameraController : MonoBehaviour
{
    public float zoomSpeed = 5f;
    public float minDistance = 5f;
    public float maxDistance = 20f;

    private Camera cameraComponent;

    private void Start()
    {
        cameraComponent = GetComponent<Camera>();
    }

    private void Update()
    {
        float zoomAmount = Input.GetAxis("Mouse ScrollWheel") * zoomSpeed;
        float distance = cameraComponent.transform.position.z - zoomAmount;

        // 카메라 거리를 minDistance와 maxDistance 범위 안에 유지
        distance = Mathf.Clamp(distance, -maxDistance, -minDistance);

        // 카메라 거리 변경
        cameraComponent.transform.position = new Vector3(cameraComponent.transform.position.x,
                                                         cameraComponent.transform.position.y,
                                                         distance);
    }
}

위의 코드에서, zoomSpeed는 마우스 휠을 돌릴 때 카메라 거리가 변경되는 속도입니다.

minDistancemaxDistance는 카메라 거리의 최소값과 최대값을 나타냅니다.

Start() 메서드에서는 현재 스크립트가 부착된 객체의 카메라 컴포넌트를 가져옵니다.

Update() 메서드에서는 Input.GetAxis("Mouse ScrollWheel")을 호출하여 마우스 휠의 움직임을 감지하고, 카메라 거리를 변경합니다.

마지막으로, Mathf.Clamp() 함수를 사용하여 카메라 거리가 minDistance와 maxDistance 범위 안에 유지되도록 합니다.

728x90