Example #1
0
 public override float GetScore(BaseContext c, Vector3 option)
 {
     if (c.AIAgent.IsNavRunning())
     {
         NavMeshAgent getNavAgent = c.AIAgent.GetNavAgent;
         if (Object.op_Inequality((Object)getNavAgent, (Object)null) && (!getNavAgent.get_hasPath() || getNavAgent.get_isPathStale() || (getNavAgent.get_pathStatus() == 1 || getNavAgent.get_pathStatus() == 2)))
         {
             Vector3 vector3 = Vector3.op_Subtraction(c.lastSampledPosition, option);
             if ((double)((Vector3) ref vector3).get_sqrMagnitude() < 0.100000001490116)
             {
                 return(0.0f);
             }
         }
     }
     return(1f);
 }
 public bool TryGetRemainingDistance(
     NavMeshAgent agent,
     Actor actor,
     out float remainingDistance)
 {
     remainingDistance = float.MaxValue;
     if (Object.op_Equality((Object)agent, (Object)null) || !((Behaviour)agent).get_isActiveAndEnabled() || !agent.get_isOnNavMesh())
     {
         return(false);
     }
     if (!agent.get_hasPath())
     {
         return(agent.get_pathPending());
     }
     Vector3[] corners = agent.get_path().get_corners();
     remainingDistance = 0.0f;
     for (int index = 0; index < corners.Length - 1; ++index)
     {
         remainingDistance += Vector3.Distance(corners[index], corners[index + 1]);
     }
     return(true);
 }
Example #3
0
        protected override bool HasPath()
        {
            NavMeshAgent navMeshAgent = this.Agent.NavMeshAgent;

            return(navMeshAgent.get_hasPath() && (double)navMeshAgent.get_remainingDistance() > (double)navMeshAgent.get_stoppingDistance());
        }