Img profile default
푸샥
  • 2016.8.1 19:48
  • 조회수 97
  • 답변수 1
Img profile default
푸샥
  • 2016.8.1 19:48
  • 조회수 97
  • 답변수 1

direction normalize를 하는 이유가 궁금합니다.

상황에 따라 힘이 달라진다고 하셨는데 좀 더 상세히 설명해주실 수 있으실까요?
nomalize를 안하고 했는데도 똑같이 실행이 돼서요. 어떤 차이가 생길 수 있는 지 궁금합니다.
그리고 direction 이라는 변수를 따로 만든 것 아닌가요? 힘이 그 안에 들어가있다는 것도 이해가 잘 되지 않습니다.
답변 부탁드립니다 !

  • #Unity로 배우는 C#
  • #OnCollisionEnter

1 답변

  • Spgjnhnsidwygch8ddkd
    Chandler
    • 2016.8.2 11:29

    벡터는 방향과 크기를 가진 물리량으로 속도, 가속도, 힘 같은 것을 예시로 들 수 있겠습니다.
    여기서 사용되는 벡터는 방향과 크기를 가진 힘으로 생각하시면 간단한 데요.
    예를들어 (10, 0, 0) 벡터가 있다면 이는 x축 방향으로 10만큼의 힘이 가해지는 벡터인 것입니다.

    그러면 왜 normalized를 하는가.
    앞서 설명한 것처럼 벡터는 방향도 가지고 있고 크기도 가지고 있습니다.

    Vector3 direction = transform.position - collision.gameObject.transform.position;
    // direction = 장애물의 위치 - 부딪힌 오브젝트의 위치
    

    direction에는 매번 다른 (x, y, z) 값이 들어가고 그에 따라 힘의 방향, 크기도 다를 것입니다.
    만약 그냥 1000을 곱하면 크기에 차이가 발생하겠죠.
    때문에 normalized를 사용하는 것입니다.

    이를 벡터의 정규화라고 하는 데요.
    벡터의 방향은 그대로 두고 크기만 1.0으로 맞춰 주는 것입니다.
    강의의 direction에 normalized를 이용하여 항상 1000의 크기를 일정하게 가질 수 있게 만든 것이죠.

답변 쓰기

이 입력폼은 마크다운 문법을 지원합니다. 마크다운 가이드 를 참고하세요.