본문 바로가기
Unity 3D

Unity C# 문법 (6) Vector

by 연꿈술사 2023. 8. 3.

안녕하세요 연꿈술사 입니다.

오늘은 Unity 3D 에서 자주 사용하고 쓰이는 Vector에 대해 알아보겠습니다.

 

우리는 저번 시간에 자료형에 대해 알아보았습니다. int나 float 같은 자료형들에 대해 배워봤습니다.

Vector 또한 자료형 중 하나입니다. 하지만 다른게 있다면 하나의 값만 저장하는 보통의 자료형과 달리

Vector는 두 가지의 자료형을 갖고 있습니다. 바로 힘(크기)과 방향입니다.

Vector 설명

여기서 x와 y의 값을 1이라고 가정해보겠습니다. (x,0)의 방향으로 1만큼의 크기를 갖는 벡터와

(0,y)의 방향으로 1만큼의 크기를 갖는 벡터가 있습니다. 이 두가지의 힘이 합쳐진다면 위 그림에서

보시는 바와 같이 (x,y)의 방향을 갖는 벡터가 나옵니다. 그렇다면 크기는 어떻게 될까요?

우리가 게임에서 키보드를 사용하여 플레이어를 움직인다고 치면 앞뒤양옆으로 클릭하기도 하지만

대각선으로 움직이기 위해 두개의 키를 한꺼번에 눌러본 경험이 있으실 겁니다.

이 때, Vector의 합연산에 의하면 피타고라스의 정리를 통해 루트2라는 값이 나옵니다. 이렇게 된다면

우리는 대각선으로 이동할 때 1보다 더 빠른 속도로 움직이게 됩니다. 그렇게 된다면 누구나 대각선으로

움직이려고 할 것입니다. 그래서 Unity에서는 이 값을 1로 만들어주는 '벡터의 정규화 ' 함수인

Normalize 함수를 제공합니다.

Normalize 사용하는 경우

이처럼 2D 게임등에서 방향키로 이동 구현을 할 때 Normalize 함수 사용을 통해 정규화를 할 수 있습니다.

Vector는 더하기, 빼기, 곱하기를 할 수 있고 위의 더하기 뿐 아니라 주인공을 향해 달려오는 AI를 구현하기

위해서는 빼기를 사용합니다. 벡터의 곱셈인 내적(dot product)와 외적(cross product)에 대해서는 차후

다뤄보도록 하겠습니다.

 

오늘은 벡터에 대해서 짧게 다뤄보았습니다. 다른 정보도 블로그에 많이 있으니 읽어보시면 좋겠습니다.

연꿈술사였습니다. 감사합니다.

 

 

 

댓글