본문 바로가기
알아두면 좋은것들

03.04 (TIL)

by 오랑이귀엽다 2024. 3. 5.

벡터 정규화(Normalization)의 이유

 

객체를 이동시킬 때 벡터를 정규화하는 이유는 주로 방향을 유지하면서 일정한 속도로 이동하기 위함입니다. 벡터를 정규화하면 그 길이가 1이 되는 단위 벡터(unit vector)를 얻을 수 있으며, 이 단위 벡터는 방향을 나타내는 데 사용됩니다. 정규화된 벡터에 스칼라 값을 곱하여, 해당 방향으로 일정한 속도로 이동시킬 수 있습니다.

  • 일정한 속도 유지: 정규화된 벡터에 이동하려는 속도를 곱하면, 방향은 유지하되 정해진 속도로 이동할 수 있습니다. 이는 벡터의 길이(크기)에 관계없이 일정한 이동 속도를 보장합니다.
  • 방향성 유지: 이동, 회전 등의 연산에서 방향성만을 고려할 필요가 있을 때, 벡터를 정규화함으로써 방향 정보만을 추출할 수 있습니다.

예를 들어, 두 점 사이를 이동하는 객체가 있을 때, 시작점에서 끝점으로의 방향 벡터를 계산하고 이를 정규화하여 단위 벡터를 얻습니다. 이 단위 벡터에 원하는 이동 속도를 곱하여, 매 프레임마다 객체를 일정한 속도로 이동시킬 수 있습니다.

더보기

Vector3 direction = (targetPosition - startPosition).normalized; // 방향 벡터 정규화
transform.position += direction * speed * Time.deltaTime; // 일정한 속도로 이동

 

월드 스페이스(World Space)와 로컬 스페이스(Local Space)의 차이

 

  • 월드 스페이스(World Space): 게임 씬 전체를 기준으로 한 좌표 시스템입니다. 모든 객체의 위치, 회전, 크기가 씬의 절대적인 기준인 월드 스페이스에 따라 결정됩니다. 즉, 월드 스페이스에서의 좌표값은 게임 세계 전체에서의 절대적인 위치를 나타냅니다.
  • 로컬 스페이스(Local Space) 또는 오브젝트 스페이스(Object Space): 특정 게임 오브젝트를 기준으로 한 좌표 시스템입니다. 오브젝트의 위치, 회전, 크기가 해당 오브젝트의 부모 객체를 기준으로 결정됩니다. 부모 객체가 없는 경우 로컬 스페이스는 월드 스페이스와 동일합니다. 로컬 스페이스에서의 좌표값은 오브젝트 자신 또는 부모 객체를 기준으로 한 상대적인 위치를 나타냅니다.

월드 스페이스와 로컬 스페이스의 차이는 주로 객체의 위치, 회전, 크기를 어떤 기준으로 측정하고 조작할지에 대한 관점의 차이입니다. 예를 들어, 오브젝트를 회전시킬 때 로컬 스페이스를 기준으로 회전하면 오브젝트의 자체 축을 중심으로 회전하게 되며, 월드 스페이스를 기준으로 회전하면 세계의 고정된 축을 중심으로 회전하게 됩니다. 이러한 차이는 오브젝트의 상대적 또는 절대적인 움직임과 회전을 제어할 때 중요한 고려사항이 됩니다.

'알아두면 좋은것들' 카테고리의 다른 글

03.06 (TIL)  (0) 2024.03.07
03.05 (TIL)  (1) 2024.03.05
02.29 (TIL)  (0) 2024.03.05
02.28 (TIL)  (2) 2024.02.28
02.27 (TIL)  (0) 2024.02.27