[유니티] cinemachine 카메라가 follow중인 게임오브젝트 순간이동

jh Seo·2024년 12월 27일
0

유니티

목록 보기
55/56

개요

현재 virtual camera가 player위치를 follow중이라 player 이동할 때 자연스레 따라다닌다.

여기서 player을 멀리 순간이동 시키면 camera가 순간이동 후 damping현상이 생기며 이리저리 튀면서 플레이어를 follow한다.

해결방법

OnTargetObjectWarped(Transform, vector3)

위 함수를 사용하면 된다.

public void TeleportTo(Vector3 teleportTo, Transform player)
{
    var delta = teleportTo- player.position;

    virtualCamera.OnTargetObjectWarped(player, delta);
    virtualCamera.PreviousStateIsValid = false;
}

이런 식으로 teleport할 vector3좌표와 현재 플레이어 좌표를 빼서
vector3자료형인 delta변수에 저장한다.

그리고 OnTargetObjectWarped함수에 follow하는 게임오브젝트의 transform과
delta변수를 인자로 넣어주면 된다!

그런데도 약간의 damping이 생겨서 검색해봤더니

 virtualCamera.PreviousStateIsValid = false;

위 함수를 사용하니 사라졌다!

레퍼런스

Teleporting with Cinemachine

profile
코딩 창고!

0개의 댓글