방향 벡터 - 벡터의 정규화(normalized) 유니티
2019. 10. 23. 07:12ㆍ기타/유니티
더보기
"유니티 방향 벡터"
"유니티 노말라이즈드"
오브젝트 균일한 이동을 위하여 벡터의 정규화가 필요합니다.
그 이유는 모든 방향의 벡터 길이가 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);
}
}
|
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'을 붙여 변수명으로 입력합니다.
궁금증이 해결되셨나요?
댓글에 피드백은 환영입니당
참고 : https://docs.unity3d.com/kr/530/ScriptReference/Vector3-normalized.html
'기타 > 유니티' 카테고리의 다른 글
스프라이트 크기 맞추기 - 유니티 Pixels Per Unit (0) | 2019.10.25 |
---|---|
Time.deltaTime을 통한 동일한 이동 유니티 (0) | 2019.10.23 |