강의

멘토링

커뮤니티

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

강동훈님의 프로필 이미지
강동훈

작성한 질문수

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진

Position

Time.deltaTime에 관한 부분을 조금 더 자세히 들을 수 있을까요?

해결된 질문

작성

·

218

1

이전 강의(2강 알고리즘)에서는 deltatick을 사용할 때 경과한 시간-이전 시간을 해서 텀이 일정시간 만큼 지나지 않았을 때 해당 동작을 해라로 이해를 했었습니다.

이번 강의에서 이용한 deltaTime은 지난 시간을 가져온다 까지는 이해는 했는데 그걸 벡타3값에 곱해서 횟수를 조절한다는 것이 이해가 어려운 부분이 있습니다.

조금 구체적인 부분일지 모르겠지만 보충 설명을 해주시면 감사드립니다.

답변 2

5

Rookiss님의 프로필 이미지
Rookiss
지식공유자

2강에서는 고정 프레임 기반이라서
일정 시간이 지나지 않았으면 아예 Update가 실행되지 않았습니다.
즉 평균적으로 1/30 초마다 1번 Update가 호출되게 조작한 셈이죠.

반면 유니티에서는 동작 방식이 고정 프레임 방식이 아닙니다.
즉 유동적으로 프레임이 호출되기 때문에,
Update문에서 경과 시간을 측정해야 하는데
그게 deltaTime의 개념이라고 보시면 됩니다.
(deltaTime = 이전 프레임 ~ 현재 프레임 경과 시간)

또한 Vector3는 어떤 방향을 가리키고 있습니다.
W키를 누르면 윗쪽 방향으로 가야 하기 때문에
윗쪽 (0, 0, 1) 방향으로 이동해야 하겠죠.

물리에서 [이동 거리 = 속도 * 시간 = 속력 * 방향 * 시간]이라고 볼 수 있는데
코드에서 [속력 = speed] [방향 = Vector3] [시간 = deltaTime]을 곱해 이동 거리를 곱한 다음,
그것을 position에 더해주고 있습니다.

0

강동훈님의 프로필 이미지
강동훈
질문자

답변 감사합니다.

강동훈님의 프로필 이미지
강동훈

작성한 질문수

질문하기