- Home /
Need some help with Navmesh agents backing off from player / circling player please.
Hi there,
I have an enemy in my game which has a ranged attack which I would like to retreat to a random position within a certain distance from the player, so for example the enemy is always within a distance of x to the player so the player cannot get right up to them.
I'm measuring the distance form the NavMesh Agent to the player and if the distance is less than x, that's when I want the enemy to reposition to a random point at the edge of a radius around the player.
The nearest thing I could think of is if there is an opposite of Random.insideUnitSphere, so I could just set the new NavMesh destination as the player position + a random distance away from the player, but I can't seem to find anything like that (It's probably something obvious I'm missing!).
I've tried setting a new destination of player.position + Random.insdieUnitSphere Vector3, but of course that still has a chance to move the enemy close to the player. Unless there is a way of using that to cap the minimum range of that function?
I've also tried a Random.Range option like this, which works for making the enemy fall back. But the problem is all enemies head to one side of the player with this.
nav.SetDestination (player.position + new Vector3 (Random.Range (10, 15), 0 ,Random.Range (10, 15)));
I thought I could fix it by having the Random.Range include negative numbers like below, but that doesn't seem to work, the enemies just stay still with it like that.
nav.SetDestination (player.position + new Vector3 (Random.Range (-10, 15), 0 ,Random.Range (-10, 15)));
I've tried things like RotateAround as well, which works for the enemies circling the player, but they don't retreat of keep distance.
It's annoying as I'm sure this is really simple, but I just can't seem to get it to work.
I'm not really sure what to try next, any help with code or pointers in the right direction here would be appreciated.
Your answer
Follow this Question
Related Questions
Keep AI from flipping? 1 Answer
NavMeshAgent resume original position and facing direction C# 0 Answers
Can you randomise a Navmesh agents rotation 1 Answer
NavMesh Agent glitches in trees 3 Answers