더보기
"유니티 방향 벡터"
"유니티 노말라이즈드"
오브젝트 균일한 이동을 위하여 벡터의 정규화가 필요합니다.
그 이유는 모든 방향의 벡터 길이가 1 이어야 방향에 따른 이동 속도가 같아지기 때문이지요.
magnitude(벡터의 길이를 변환)를 통해 예시를 보겠습니다.
VectorDebuger.cs
1 2 3 4 5 6 7 8 9 10 11 |
public class VectorDebuger : MonoBehaviour { private void Start() { Vector2 upwardDir = new Vector2(0, 1); Vector2 diagonalDir = new Vector2(1, 1); Debug.Log(upwardDir.magnitude); Debug.Log(diagonalDir.magnitude); Debug.Log(upwardDir.normalized.magnitude); Debug.Log(diagonalDir.normalized.magnitude); } } Colored by Color Scripter |
cs |
실행한 값입니다.
정규화하지 않은 대각선 벡터에서만 1.414214... 의 값이 나옵니다.
만약 정규화하지 않고 이동을 적용했다면 대각선 이동이 1.414... 배 더 빠르게 이동하게 되는 것입니다.
참고로 대각 방향의 벡터는 (0.7071068..., 0.7071068...)로 변환됩니다.
또 하나의 예시로 적은 값의 벡터도 길이를 1로 변환해줍니다.
(0.5, 0).normalized => (1, 0) : → 방향
(0.2, 0.2).normalized => (0.7071068, 0.7071068) : ↗ 방향
우리는 이렇게 정규화된 벡터를 방향 벡터라고 부릅니다.
-보통 'Direction(방향)'을 줄인 'dir'을 붙여 변수명으로 입력합니다.
'유니티 일기' 카테고리의 다른 글
유니티의 물리 엔진 속성 - Physics Manager (0) | 2021.10.28 |
---|---|
유니티의 Rigidbody (0) | 2021.10.28 |
유니티의 정규화 벡터 (1) | 2021.10.23 |
유니티 이벤트 함수의 호출 순서 (0) | 2021.10.23 |
절대강좌 fps 예제 시작! (0) | 2021.10.21 |
댓글