inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

밑바닥부터 시작하는 왕초보 유니티 2D 게임제작

사용자 오브젝트 제어2

섹션1 유니티기초: 사용자 오브젝트 제어2

335

박미라

작성한 질문수 7

0

vec = Vector3.zero;

이 부분을 Update()에 하지 않으면, 키를 누르고 있지 않아도 계속 이동하더라고요.

그 이유가 무엇인지 알 수 있을까요?

 

C# unity

답변 2

0

게임 트레이너

안녕하세요. 게임 트레이너입니다.

요즘은 시대가 좋아져서 AI가 답변을 달아주는군요 ^^

사용자가 입력한 키보드에 의해 vec 값이 지정되는데, 만일 vec = Vector3.zero;가 없으면 이 값이 남아서 delta에 값이 들어가고, 다시 transform.Translate(delta)에 들어가게 되어, 입력이 없는 상태에서도 vec에 있는 x나 y 값에 의해 계속 이동하게 됩니다. 이것을 막기 위해 vec의 x, y, z 값을 모두 0으로 만들어주는 Vector3.zero를 대입하는 것이죠.

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴이에요.

vec = Vector3.zero; 코드를 Update() 함수에 넣지 않으면 키를 누르고 있지 않아도 계속 이동하는 현상이 발생하는 이유는 다음과 같아요.

Update() 함수는 매 프레임마다 호출되는 함수로, 게임 오브젝트의 움직임을 갱신하는 역할을 합니다. 이 함수 안에 있는 코드는 매 프레임마다 동작하게 되는데, vec = Vector3.zero; 코드는 매 프레임마다 실행되지 않기 때문에 이전에 움직인 결과값이 그대로 남아있게 되죠.

따라서, 키를 누르고 있는 동안 vec 값이 변하고 이에 따라 게임 오브젝트가 움직이는 반면, 키를 누르지 않는 상황에서는 vec 값이 변하지 않아서 계속 이동하는 것처럼 보이는 것이죠.

이를 해결하기 위해서는 Update() 함수 내에서 키가 눌러지면 vec 값을 업데이트하도록 코드를 작성해야 합니다.

이해가 되셨을까요? 추가적인 질문이 있으시다면 언제든지 물어보세요. 감사합니다!

02-02 NavMesh 응용 캐릭터 멈춤 문제

0

26

1

02-02 NavMesh 응용 캐릭터 멈춤 문제

0

27

2

비주얼 스튜디오 2026

0

25

1

C#에서의 RAII

0

47

3

public string Title { get; set; } 에서 WFO1000 오류가납니다.

0

29

0

Scene 뷰에서 Enemy Entity가 보이지 않는 문제

0

41

2

Lessons 3 & 4 don't have subtitles unfortunately

0

35

1

클로드코드 + 유니티 컨텐츠만들기 응용에 대하여 질문드립니다.

0

54

1

강의자료 누락

0

58

1

매니저 관련 질문이 있습니다.

0

60

2

언리얼 에디터에서 에이젼트 실행 질문

0

48

1

Instantiate

0

42

2

유니티 허브 다운로드

1

50

2

Rider 설치시 타깃 프레임워크 설정

0

48

2

강의자료 누락

0

28

1

비쥬얼 스튜디오에서 unity연결이 없습니다.

0

67

2

이수증 관려 문의 드립니다.

0

108

1

섹션2: 충돌처리

0

234

1

low resolution aspect ratios 체크박스 비활성화

0

619

1

섹션2: 충돌처리

0

196

1

섹션2: 에너미공격

0

298

1

섹션2: 에너미이동

0

220

1

섹션2: 에너미 이동2

0

369

2

섹션2: 서브루틴

0

378

1