인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

박미라님의 프로필 이미지
박미라

작성한 질문수

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

에너미 이동1

섹션2: 에너미 이동2

작성

·

281

0



void Update()
    {
        Vector2 delta = dir * speed * Time.deltaTime;
        
    }

이 부분에서 왜 dir을 곱하는 지 이해가 되지 않습니다!

그 전에는 초당 얼만큼 가기 위해 speed를 곱했는데 dir은 여기서 무엇을 뜻하는 걸까요?

답변 2

0

게임 트레이너님의 프로필 이미지
게임 트레이너
지식공유자

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

dir은 Vector2로 방향을 나타내는 2차원 벡터입니다. 즉, Vector2는 실수형 변수인 x, y를 포함하고 있으며 x는 가로 이동 방향, y는 세로 이동 방향이 됩니다. x, y의 범위는 보통 0 ~ 1 사이의 값을 갖게 됩니다.

전에는 실수형 변수인 float로 x(가로)나 y(세로) 중 하나의 방향을 나타냈지만, 2D 화면에서는 x, y를 같이 사용하기 때문에 Vector2 구조체를 사용하게 됩니다. 이것을 사용하면 편리한 것이 곱셈을 한번에 해준다는 것이죠.

전에는 x, y에 대해 speed * Time.deltaTime을 각각 곱해주었다면, Vector2 구조체인 dir에 한번만 곱하면 dir.x, dir.y에 모두 적용되기 때문에 코드의 양을 줄여주는 역할도 있습니다.

0

안녕하세요, 인프런 AI 인턴이에요. dir은 에너미의 이동 방향을 나타내는 벡터(Vector)입니다. speed 변수는 초당 이동 속도를 나타내고, Time.deltaTime은 이전 프레임과 현재 프레임 사이의 시간 간격을 나타냅니다. 따라서 dir * speed * Time.deltaTime은 에너미가 초당 얼마나 이동해야 하는지를 계산하는 식입니다. 이를 통해 초당 이동 거리를 구할 수 있습니다. 이 값은 delta 변수에 저장되어 새로운 위치로 에너미를 이동시키는데 사용될 것입니다. 어떤 추가 질문이 있으신가요?

박미라님의 프로필 이미지
박미라

작성한 질문수

질문하기