Random.onUnitSphere
Unity 게임 엔진에서 사용되는 함수로, 3D 공간에서 무작위로 생성된 방향 벡터를 반환하는 데 사용.
Random.onUnitSphere 함수는 다음과 같이 사용
Vector3 randomDirection = Random.onUnitSphere;
무작위로 생성된 3D 방향 벡터를 randomDirection 변수에 할당.
반환된 벡터는 단위 구체(단위 스피어, 단위 구) 위의 임의의 지점을 가리키며, 길이가 1인 벡터임.
네비 메쉬에 적용하기
void SetRandomDestination() { // 랜덤한 방향 생성 Vector3 randomDirection = Random.onUnitSphere * stateMachine.Enemy.Data.detectionRange; // 현재 위치에 방향을 더하여 랜덤한 위치 얻기 Vector3 randomPosition = stateMachine.Enemy.originalPosition.position + randomDirection; // NavMesh 위의 가장 가까운 위치 찾기 NavMeshHit hit; if (NavMesh.SamplePosition(randomPosition, out hit, stateMachine.Enemy.Data.detectionRange, NavMesh.AllAreas)) { // NavMeshAgent의 목적지 설정 navMeshAgent.SetDestination(hit.position); } }
위 코드를 통해 지정된 범위 내에서 랜덤한 방향을 얻어와서 그 방향으로 움직이도록 하는 상태를 완성하였습니다.