차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

다음 판
이전 판
unity:directiondistancefromoneobjecttoanother [2015/05/21 23:34] – 문서가 unity3d:directiondistancefromoneobjecttoanother에서 unity:directiondistancefromoneobjecttoanother(으)로 옮겨졌습니다 V_Lunity:directiondistancefromoneobjecttoanother [2019/01/29 02:04] (현재) 115.137.92.46
줄 1: 줄 1:
 +{{tag>유니티 unity}}
 +
 +
  
 ======한 오브젝트에서 다른 오브젝트로의 방향과 거리====== ======한 오브젝트에서 다른 오브젝트로의 방향과 거리======
 +
 +
  
 공간에서 한 점을 다른 것으로부터 뺀다면, 그 결과는 한 오브젝트에서 다른 오브젝트를 "가리키는" 벡터가 됩니다: 공간에서 한 점을 다른 것으로부터 뺀다면, 그 결과는 한 오브젝트에서 다른 오브젝트를 "가리키는" 벡터가 됩니다:
줄 17: 줄 22:
  
 만일 사용자가 비교를 위해 거리를 사용한다면 (예를 들면, 근접성 체크 등을 위해), 크기 계산을 모두 피할 수 있습니다. sqrMagnitude 속성은 크기 값은 제곱을 제공하고, 이는 크기를 시간이 많이 소요되는 제곱근 연산 없이 계산하게 됩니다. 알려진 거리에 대한 크기를 비교하기 보다는, 제곱 거리에 대한 제곱 크기를 비교할 수 있습니다:- 만일 사용자가 비교를 위해 거리를 사용한다면 (예를 들면, 근접성 체크 등을 위해), 크기 계산을 모두 피할 수 있습니다. sqrMagnitude 속성은 크기 값은 제곱을 제공하고, 이는 크기를 시간이 많이 소요되는 제곱근 연산 없이 계산하게 됩니다. 알려진 거리에 대한 크기를 비교하기 보다는, 제곱 거리에 대한 제곱 크기를 비교할 수 있습니다:-
 +
 +
  
 <file csharp>if (heading.sqrMagnitude < maxRange * maxRange) { <file csharp>if (heading.sqrMagnitude < maxRange * maxRange) {
  // Target is within range.  // Target is within range.
 }</file> }</file>
 +
 +
  
 이는 비교에서 실제 크기를 사용하는 것보다 훨씬 효율적입니다. 이는 비교에서 실제 크기를 사용하는 것보다 훨씬 효율적입니다.
 +
 +
  
 때로는, 목표에 대한 지상 행군(overground heading)이 필요합니다. 예를 들면, 지상에 서 있는 플레이어가 공중에 떠 있는 목표에 접근할 필요가 있을 경우를 상상하여 보십시오. 만일 목표의 위치에서 플레이어를 위치를 빼면, 그러면 그 결과로써 나타나는 벡터는 목표를 향해 위 방향을 가리킬 것 입니다. 이렇게 되면 그 역시 위쪽을 가리키고 있으므로 플레이어의 트랜스폼(transform)을 맞추는 데 적합하지 않습니다; 정작 필요한 것은 플레이어의 위치에서 목표의 바로 아래에 있는 지상을 가리키는 벡터입니다. 이는 뺄셈의 결과를 가지고 Y 좌표를 0으로 설정하면 쉽게 얻을 수 있습니다:- 때로는, 목표에 대한 지상 행군(overground heading)이 필요합니다. 예를 들면, 지상에 서 있는 플레이어가 공중에 떠 있는 목표에 접근할 필요가 있을 경우를 상상하여 보십시오. 만일 목표의 위치에서 플레이어를 위치를 빼면, 그러면 그 결과로써 나타나는 벡터는 목표를 향해 위 방향을 가리킬 것 입니다. 이렇게 되면 그 역시 위쪽을 가리키고 있으므로 플레이어의 트랜스폼(transform)을 맞추는 데 적합하지 않습니다; 정작 필요한 것은 플레이어의 위치에서 목표의 바로 아래에 있는 지상을 가리키는 벡터입니다. 이는 뺄셈의 결과를 가지고 Y 좌표를 0으로 설정하면 쉽게 얻을 수 있습니다:-
 +
 +
  
 <file csharp>var heading = target.position - player.position; <file csharp>var heading = target.position - player.position;
 heading.y = 0; // This is the overground heading.</file> heading.y = 0; // This is the overground heading.</file>
  
-{{tag>유니티 unity}}+ 
    * 출처: [[http://unitykoreawiki.com/index.php?n=KrMain.DirectionDistanceFromOneObjectToAnother|유니티코리아위키]] (CC BY-NC-SA 2.0)    * 출처: [[http://unitykoreawiki.com/index.php?n=KrMain.DirectionDistanceFromOneObjectToAnother|유니티코리아위키]] (CC BY-NC-SA 2.0)