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
'유니티 > 기능구현' 카테고리의 다른 글
유니티) Fade(In,Out) 효과넣기(알파값 조절) (0) | 2019.01.02 |
---|---|
유니티) 데미지값 출력하기 FloatingText (Camera.WorldToScreenPoint) (0) | 2018.12.31 |
유니티) 랜덤함수 Random.Range 아이템 랜덤 드랍하기! (0) | 2018.12.16 |
유니티)카메라 화면 전환 효과내기(1인칭),(측면뷰) (2) | 2018.12.15 |
유니티) 캐릭터 점프 구현하기 (AddForce) Roll a Ball #3 점프 한번만 하기 (GetKeyDown) (1) | 2018.12.09 |