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

박미라님의 프로필 이미지

작성한 질문수

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

에너미 이동1

섹션2: 에너미 이동2

23.07.12 14:51 작성

·

256

0



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

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

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

답변 2

0

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

2023. 07. 21. 05:39

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

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 인턴님의 프로필 이미지

2023. 07. 14. 14:56

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