inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[Unity6] 나만의 서바이벌 게임 만들기

Character Movement

move함수

해결된 질문

154

anhyeokjun

작성한 질문수 17

0

안녕하세요 선생님

move 함수에서 카메라 백터 로

0으로 기준을 잡아서 horizontal, vertical 값을 줘서 움직이는건가요

camerForward,cameraRight기준으로 코드는 처음봐서요!

헷갈립니다

C# unity

답변 2

0

Pinous

이 코드는 월드 좌표(0,0,0) 기준이 아닌, 카메라의 방향을 기준으로 이동하는 방식입니다.

보통 Vector3.forward(0,0,1)와 Vector3.right(1,0,0)를 사용하면 고정된 방향으로 이동하지만, 이 코드는 카메라가 보는 방향에 맞춰 움직이도록 합니다.

  1. Camera.main.transform.forward와 Camera.main.transform.right를 가져와 y 값을 0으로 만든 후 Normalize() 합니다.
    → 이렇게 하면 지형에 영향받지 않는 평면 이동 벡터를 얻을 수 있습니다.

  2. 입력값(horizontal, vertical)을 cameraRight와 cameraForward에 곱해 이동 방향을 결정합니다.
    → 따라서 W를 누르면 카메라가 보는 방향으로 이동하고, A를 누르면 카메라의 왼쪽 방향으로 움직입니다.

이 방식 덕분에 카메라를 돌려도 이동 방향이 직관적으로 유지됩니다! 😊

1

anhyeokjun

그렇군요!!답변감사합니다

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. anhyeokjun님.

Move 함수에서 카메라 벡터를 기준으로 캐릭터의 움직임을 제어하는 문제에 대해 질문해주셨습니다. Unity에서 캐릭터를 움직일 때 카메라의 방향을 기준으로 움직이게 설정하는 것은 흔한 기법입니다. 두 가지 주요 벡터는 다음과 같습니다:

  1. cameraForward: 이는 카메라가 바라보고 있는 전방 방향을 나타내며, 일반적으로 (0, 0, 1) 벡터에 카메라의 회전 행렬을 곱하여 얻을 수 있습니다.
  2. cameraRight: 이는 카메라의 오른쪽 방향으로 정의되며, 전방 벡터에 수직입니다. 따라서 (1, 0, 0) 벡터에 카메라의 회전 행렬을 곱하여 얻습니다.

horizontalvertical 값은 보통 사용자의 입력에 의해 결정되며, 이 입력 값들은 위에서 설명한 카메라 방향 벡터와 결합되어 월드 좌표 기준으로 캐릭터의 이동 방향을 결정하게 됩니다. 이렇게 함으로써, 카메라의 시점에 따라 캐릭터가 자연스럽게 이동할 수 있게 됩니다.

이에 대해 더 명확한 설명이 필요하시다면, 아래에 유사한 내용이 다루어진 기존 질문을 참고하실 수 있습니다:

이 기본 개념과 이전 응답에서 다룬 회전과 이동에 관한 내용을 통해 카메라 방향에서의 이동 구현이 어떻게 이루어지는지를 이해하시는데 도움이 되셨으면 합니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

프로젝트 질문 문의

0

32

1

UI 기능 관련 질문이 있습니다!

0

24

2

강의 코드 파일은 혹시 어디에 있나요?

0

66

1

오브젝트 파괴 애니메이션문제

0

59

2

Atlas에서 만든 Item 이미지가 삐져나옵니다

0

87

2

AddMarker를 했는데 east와 west는 잘되는데, north/south가 거꾸로 인식되는데 어떻게 해야할까요?

0

47

1

3강의 내용이 1강과 동일합니다

0

64

2

Text Object 애니메이션 이슈

0

71

3

Material 방식 수정 후 처음 포탈 할때만 아래 오류가 발생합니다

0

105

4

Inventory #1 강의 31분 28초경 오류 납니다

0

55

1

World 좌표

0

66

1

자료 ?

0

89

2

Terrain 세팅 값 문의

0

99

1

Resources.RoadAll 질문

0

67

2

Inventory #1

0

109

2

Item 연출 13:24 - Asset Manager 를 거쳐서 데이터를 가져오는 이유

0

123

2

오브젝트활성화 > 오브젝트 Hit 이펙트 쪽 질문입니다

0

99

2

1:30 - cutdown > idle - NoneInteraction false ?

0

99

2

ItemClicktap오류

0

77

1

일꾼 구현하기 #2 부분 영상 오류?

1

135

3

TextMeshPro 폰트 깨짐

0

416

2

character movement 반응속도

0

145

2

인터렉티브 키 24:14 Destory 질문

0

166

1

폰트에 따라 번집니다.

0

253

2