인프런 커뮤니티 질문&답변

UniUni님의 프로필 이미지
UniUni

작성한 질문수

따라하면서 배우는 고박사의 유니티 하이퍼캐주얼게임 시리즈 01

게임 설정

ZIGZAG, 카메라 컨트롤러 질문

작성

·

198

0

안녕하세요! 강의 너무 잘 듣고 있습니다!!

지그재그 강의 CameraController::LateUpdate에서

카메라가 플레이어 타겟을 쫓는 코드 부분에서

카메라 쿼터니언 * 백터3(0, 0, -distance) 부분이 이해가 잘 되지 않습니다 ㅠㅠ

답변 1

1

고박사님의 프로필 이미지
고박사
지식공유자

아.. 제가 답변을 했다고 생각하고 있었네요ㅠㅠ;;

 

오브젝트의 쿼터니온 회전은 현재 오브젝트가 바라보고 있는 방향입니다.

 

오브젝트의 이동은 Vector3(x, y, z)로 x, y, z방향으로 이동합니다.

Vector3(10, 0, 0)이라고 하면 x축 방향으로 10만큼 이동하는거죠

근데 이 x축 방향으로 10만큼 이동은 현재 오브젝트가 보고 있는 방향과 관계없이 무조건 x축으로 이동합니다.

즉, 오브젝트가 회전해서 어떤 방향을 바라보던 월드 기준으로 x축으로만 이동하죠.

 

그래서 "오브젝트가 보고 있는 방향을 기준으로 이동"을 하려면 현재 오브젝트의 회전 정보가 필요합니다.

그걸 수식으로 나타내면 쿼터니온 회전 * Vector3(10, 0, 0)과 같이 나타낼 수 있습니다.

 

앞의 Vector3(10, 0, 0)은 오브젝트의 회전과 관계없이 월드 기준 x축으로 10만큼 이동이고,

쿼터니온 회전 * Vector3(10, 0, 0)은 오브젝트가 바라보고 있는 전방 방향을 기준으로 오른쪽으로 10만큼 이동이 됩니다.

 

이 강의에선 카메라가 플레이어를 바라보고 있기 때문에 플레이어를 바라보고 있는

현재 방향을 기준으로 플레이어 뒤통수 방향으로 -distance만큼 떨어져서 배치되도록 하기 위해

쿼터니온 회전 * (0, 0, -distance)와 같이 작성했습니다.

UniUni님의 프로필 이미지
UniUni
질문자

쉽게 설명해주셔서 너무 좋습니다 ㅠㅠ 감사합니다 !!

UniUni님의 프로필 이미지
UniUni

작성한 질문수

질문하기