게임심화 - 4. Script - 벡터

LSDrug·2024년 6월 30일

1. 벡터의 정의

특정 위치로부터 방향과 크기를 가지고 있는 것.

  • 길이 - 크기
  • 방향 - 화살표의 방향

Vector2 = (x, y)
Vector3 = (x, y, z)

주로 사용하는 벡터는 다음과 같다.

Vector는 위치와 벡터 둘 다로 쓰인다.

즉, 컴포넌트 초기에 있는 Transform의 Position도 하나의 벡터로 이루어져 있다는 것이다.

2. 위치 좌표와 상대 좌표.

  1. 위치 좌표(=절대좌표)를 나타낼 때.
  • 원점으로부터 얼마나 떨어져 있는지를 나타내는 위치 좌표
  • 점으로 나타낼 수 있다.
  • 사실 위치좌표 또한 벡터의 개념으로 볼 수 있다.
  • 원점으로부터 (x, y)로 향하는 방향으로 볼 수 있기 때문
  1. 벡터(상대 좌표)를 나타낼 때
  • 어떤 방향으로 얼만큼의 길이만큼 가는지.(소위 말하는 그 벡터 개념)
    - 출발 위치가 어딘지는 관심이 없다.
    - 화살표로 나타낼 수 있다.

  • Vector2(1,1) + Vector2(-3,3) = Vector2(2,4)라면
    - Vector2(1,1) : 위치좌표 (출발 위치)
    - Vector2(-3,3) : 벡터. 상대적으로 x 방향으로 -3, y 방향으로 3만큼 더 갈 것이다.
    - Vector2(2, 4) : 위치좌표 (도착 위치)

3. 벡터의 계산.

  1. 벡터의 크기(=길이) : Magnitude
  • sqrt(x^2 + y^2)
  • 거리는 크기만큼 간다고 생각하고 해당 x, y만큼의 방향으로 간다고 보면된다.
  1. 덧셈과 뺄셈 : 일반적으로 각 만큼 더하면 된다.

  2. 곱셈 : 스칼라를 이용해 곱셈을 해 준다.

    방향은 같고 크기를 곱해준다.

  3. 방향 벡터 (= 단위 벡터) : normalized Vector

  • 크기는 제외하고 방향만 가지고 있는 벡터
  • 길이가 1이며 오직 방향만 나타낸다.
  • 특정 오브젝트를 특정 방향으로 이동시키려고 할 때, 사람 눈에 이동하는 것을 보이게 하기 위해서 해당 간격만큼만 이동시키기 위해서 자주 사용.

4. 유니티에서 정의된 벡터

SmoothDamp : 현재 벡터에서 타겟 벡터 값까지 일정 시간동안 스무스하게 변화하는 과정에서의 벡터를 업데이트를 하는 함수.

어떤 카메라나 캐릭터를 이동시킬때 자주 사용.

이동과 보관


profile
마약같은 코딩, 마약같은 코딩러

0개의 댓글