- Home /
Determent if the AI agent destination status is valid or not
I have this problem when trying to determent if enemy can reach the player. Because if the player is in the room and enemy is not in the room or the enemy is in the room and the player is not in the room and the room door closes the path is closed which means that there is no way the enemy is going to reach the player. Only if you open the door the path is available. Cause the door has a dynamic obstacle. So I tried to use CalculatePath method to determent the destination status (to see if for example the enemy can reach the player). But it doesn't work.. Path is always unavailable, even if I stepped out of the closed area (like room) to the path where the enemy is walking around. (canReachPlayer is always = false)
I use Unity4.
P.S. Sorry if my english is bad.
The Demonstration: [IMG] https://postimg.org/image/xgjhu434z/
The script:
public Transform player;
private NavMeshAgent agent;
[HideInInspector]
private bool canReachPlayer;
private NavMeshPath pathToPlayer;
void Start ()
{
agent = GetComponent(NavMeshAgent);
}
void Update ()
{
pathToPlayer = new NavMeshPath ();
Debug.Log (canReachPlayer + " - CanReach");
if(CalculateNewPath() == true)
{
canReachPlayer = true;
print("Path available");
}
else
{
canReachPlayer = false;
print("Path not available");
}
if(canReachPlayer == true)
{
agent.SetDestination(player.position);
}
else if(canReachPlayer == false)
{
//Ignore the player and go back patrolling the area.
}
}
bool CalculateNewPath ()
{
agent.CalculatePath (player.position, pathToPlayer);
print ("New Path calculated");
if(pathToPlayer.status != NavMeshPathStatus.PathComplete)
{
return false;
}
else
{
return true;
}
}
Your answer
Follow this Question
Related Questions
iOS internet reachability for other platform? 2 Answers
navmesh remaining distance wrong when destination outside navmesh 1 Answer
NavMeshAgent collision not working with player 2 Answers
NavMeshAgent.CalculatePath, keep getting NullReferenceException 3 Answers
Is there any way to find connected vertices in a mesh which was imported from Blender? 1 Answer