Vector3.Distance


두 위치 사이의 거리를 반환한다.


일정거리 안에 플레이어가 접근하면 반응하도록 하기위해 Vector3.Distance를 이용한다.


Vector3.Distance() 사용법

float distance = Vector3.Distance(코인의 위치, 플레이어의 위치);


적용하기

Coin 스크립트

public void CoinMove()

{

dir= (playerpos.position - transform.position).normalized;

acceleration= 0.2f;

velocity = (velocity + acceleration* Time.deltaTime);

float distance = Vector3.Distance(playerpos.position, transform.position);

if (distance <= 3.0f)

{

transform.position = new Vector3(transform.position.x + (dir.x * velocity),

   transform.position.y,

transform.position.z+(dir.z * velocity));

}

else

{

velocity = 0.0f;

}

}

코드해석

direction = (playerpos.position - transform.position).normalized; : 코인위치와 플레이어의 위치를 뺀 값을 단위 백터화 한다.

acceleration= 0.2f;  : 가속도

velocity = (velocity + acceleration* Time.deltaTime); :  한 프레임으로 가속도 계산


간단하게 구현하기에는 Distance를 사용하면 좋긴하지만, 좀 더 최적화된 퍼포먼스를 위해서는 밑에 있는 것들을 이용하는것을 추천한다.ㅎㅎ

1) Vector3.Distance

2) Vector3.magnitude

3) Vector3.sqrMagnitude


참고 : https://docs.unity3d.com/kr/530/ScriptReference/Vector3.Distance.html


+ Recent posts