안녕하세요, 인친님들!
오늘은 벡터 연산에서 매우 유용한 속성인 Vector2.magnitude,Vector3.magnitude에 대해 알아보겠습니다. 이 속성은 게임 개발에서 자주 사용되며, 특히 거리 계산이나 속도 측정 등에 활용됩니다.
Magnitude란?
Magnitude는 벡터의 '크기'를 나타내는 값입니다. 이는 Vector2와 Vector3 모두에 적용됩니다. 벡터의 방향은 무시하고 오직 그 길이만을 나타냅니다.
수학적으로 표현하면:
- Vector2의 경우:
magnitude = √(x² + y²) - Vector3의 경우:
magnitude = √(x² + y² + z²)
여기서 x, y, z는 각각 벡터의 x, y, z 좌표입니다.
Unity에서의 사용
Unity에서는 Vector2와 Vector3 클래스 모두 magnitude 속성을 가지고 있습니다.
예를 들어 보겠습니다:
// Vector2 예제
Vector2 v2 = new Vector2(3, 4);
float size2 = v2.magnitude;
Debug.Log("Vector2의 크기: " + size2); // 출력: Vector2의 크기: 5
// Vector3 예제
Vector3 v3 = new Vector3(3, 4, 5);
float size3 = v3.magnitude;
Debug.Log("Vector3의 크기: " + size3); // 출력: Vector3의 크기: 7.071068

실제 사용 예제
두 점 사이의 거리를 Vector3를 사용해 계산해 보겠습니다:
Vector3 point1 = new Vector3(2, 4, 1);
Vector3 point2 = new Vector3(3, 0, 5);
Vector3 difference = point2 - point1;
float distance = difference.magnitude;
Debug.Log("두 점 사이의 거리: " + distance);
이 코드는 3D 공간에서의 두 점 사이의 거리를 계산합니다.
Vector2와 Vector3의 차이점
- Vector2는 2D 게임이나 UI 작업에 주로 사용됩니다.
- Vector3는 3D 게임이나 3D 공간에서의 위치, 회전, 크기 등을 나타낼 때 사용됩니다.
- 둘 다 magnitude 속성을 가지고 있지만, Vector3의 경우 z축 값도 계산에 포함됩니다.
주의사항
- Magnitude는 항상 양수입니다. 벡터의 방향은 고려하지 않습니다.
- 성능이 중요한 경우,
magnitude대신sqrMagnitude를 사용할 수 있습니다. 이는 제곱근 계산을 하지 않아 더 빠릅니다.
'1인 개발 게임 (Unity) > UNITY' 카테고리의 다른 글
| [UNITY] instantiate 인스턴스, 프리팹을 씬에 생성하기 (0) | 2024.08.09 |
|---|---|
| [UNITY] 프리팹 - 오브젝트 반복 생성, 활용하기 (2) | 2024.08.08 |
| [UNITY] 충돌 판정 하는 법 1 - 원의 반지름 사용하기 (0) | 2024.08.08 |
| [UNITY] 키보드 방향키로 캐릭터(오브젝트) 이동시키기 (2) | 2024.08.08 |
| [UNITY] 오브젝트가 게임 뷰에서 안보여요 -> '레이어 번호'를 잘 설정합시다. (0) | 2024.08.08 |