상세 컨텐츠

본문 제목

유니티 캐릭터 줌인 (Input Action) + 시네머신 가상 카메라

유니티/기능

by MJ_119 2025. 1. 13. 00:26

본문

유니티 캐릭터 줌인 (Input Action) 인풋 액션 + 시네머신 가상 카메라 이용해서 기능 만들기

 

 

1. 인풋 액션에서 액션을 추가, 설정한다.

 

 

2. 시네머신 가상 카메라를 만들고 캐릭터를 바라보게 할당해준다.

 

3. 스크립트를 적어 붙여준다.

 

내 컴퓨터에서는 마우스 휠을 1칸 움직이면 120값이 나온다.

[Header("Mouse Zoom")]
    float zoomValue;
    public float zoomSpeed = 3f;
    public float minFOV = 16;
    public float maxFOV = 60;

 

void start()
{
	controller.Character.Zoom.performed += context =>
    {
        zoomValue = Mathf.Sign(context.ReadValue<float>()); // 1,-1로 나옴
        zoomValue = context.ReadValue<float>(); // 그냥 이걸 써도 됨
    };
}

 

 

void Update()
    {
        Move();
        CameraZoom();
    }

    private void CameraZoom()
    {
        if(zoomValue != 0 && virtualCamera != null)
        {
            float currentFOV = virtualCamera.m_Lens.FieldOfView;
            currentFOV -= zoomValue * 0.8f * zoomSpeed ; // sign 함수 썼을때 사용
            currentFOV -= zoomValue * 0.01f * zoomSpeed ; // 그냥 썼을때 사용
            currentFOV = Mathf.Clamp(currentFOV, minFOV, maxFOV);
            virtualCamera.m_Lens.FieldOfView = currentFOV;
            
            zoomValue = 0; // 마우스 휠 한번 움직인 뒤, 휠 움직임값 0으로 초기화
        }
    }

관련글 더보기