Vector는 2차원이나 3차원 혹은 그 이상의 차원에서 위치, 방향, 속도와 같은 값을 나타내기 위해 사용된다. Unity에서는 Vector2
, Vector3
를 이용해 Vector를 나타낸다. 위에 붙는 정수는 차원을 나타내는 정수이다.
transform.position
을 나타낼 때 다음과 같은 방법으로 나타낼 수 있다.
transform.position += new Vector3(0.0f, 0.0f, 1.0f);
Vector3
같은 경우 x,y,z를 가지고 있다.+=
과 같은 연산자가 적용되는 것을 보면 Vector의 사칙연산과 비교연산이 가능하다.스칼라 곱셈
, 내적
, 외적
과 같은 벡터끼리의 공간연산도 가능하다.Vector를 쉽게 정의하면 방향
과 크기
를 가지고 있는 요소라고 할 수 있는데 Magnitude
는 크기
를 나타내는 변수이다.
Magnitude
를 사용하는 방법은 Vector3.magnitude
의 변수를 활용하는 것이다.Magnitude
는 크기를 나타내는 스칼라값으로 자료형은 float
이다.Magnitude
를 구현하는 방법은 피타고리스 정리를 이용하는 방법인데 sqrt(x*x+y*y+z*z)
로 나타낼 수 있다.
Magnitude
는 보통 주 point사이의 거리나 속도의 크기(속력)을 계산할 때 주로 사용한다.
Normalized
는 Vector의 방향성분을 알고 싶을 때 사용하는 요소로 방향은 같지만 크기가 1이라는 특징을 가지고 있다.
Normalized
를 사용하는 방법은 Vector3.normalized
를 사용하면 된다.Normalized
는 크기가 1이고 방향을 나타내는 벡터로 표현한다.Normalized
를 구현하는 방법은 기존 벡터의 요소(x,y,z)에 크기를 나타내는 Magnitude
로 나누어주면 된다.
Normalized
는 주로 방향을 알고 싶거나 단위속도를 계산할때 주로 사용한다.
크기가 1이기 때문에 다른 스칼라 값을 연산해도 연산한 벡터의 크기는 스칼라 값과 같기 때문에 계산이 간단해진다.