유니티 캐릭터 줌인 (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으로 초기화
}
}
유니티 애니메이션 발(foot) 미끄러짐 해결하기 (0) | 2025.01.15 |
---|---|
유니티 땅(ground) 체크하기 (0) | 2025.01.14 |
유니티 애니메이션 시간(몇초인지) 구하기 - animator.GetCurrentAnimatorStateInfo(index) (0) | 2025.01.12 |
믹사모(mixamo) unable to map your existing skeleton 에러 해결 (0) | 2025.01.09 |
유니티 인벤토리 만들기 - 3D게임 (0) | 2025.01.06 |