Unity forum
https://forum.unity.com/threads/solved-random-wander-ai-using-navmesh.327950/
현재위치에서 랜덤한 'NavMesh' 위의 위치를 구하고 싶은 경우가 있다.
public void Warp(float dist)
{
int layer = 1 << NavMesh.GetAreaFromName("Walkable");
Vector3 pos = RandomNavSphere(transform.position, dist, layer);
transform.position = pos;
}
public Vector3 RandomNavSphere(Vector3 origin, float dist, int mask)
{
Vector3 randDirection = Random.insideUnitSphere * dist;
randDirection += origin;
NavMesh.SamplePosition(randDirection, out NavMeshHit navHit, dist, mask);
return navHit.position;
}
위의 코드는 현재 위치를 기준으로 반지름이 dist인 원형 범위 안에서 NavMesh 포인트를 찾는 코드.
걸어서 이동시킬거라면 찾은 포인트가 도달 가능한지 체크한 뒤에 destination으로 설정 하자.
'🌍 Unity > 유니티 프로그래밍' 카테고리의 다른 글
unity FrameCounter (0) | 2021.11.13 |
---|---|
gereric singleton의 RuntimeInitializeOnLoadMethod 실행문제 (3) | 2021.11.13 |
CSV 파일 쓰기 (0) | 2019.11.19 |
유니티 csv 파일 읽기 ( Unity csv file read ) 수정 19.11.15 (2) | 2019.11.15 |
유니티 싱글톤(싱글턴) 기본 패턴 Unity singleton parttern (0) | 2019.11.15 |