public static bool HasPathConnectingViaPoint( GameObject a, GameObject b, Vector3 point, int areaMask = -1, int agentTypeID = 0) { NavMeshPath navMeshPath = new NavMeshPath(); NavMeshQueryFilter navMeshQueryFilter = (NavMeshQueryFilter)null; ((NavMeshQueryFilter) ref navMeshQueryFilter).set_areaMask(areaMask); ((NavMeshQueryFilter) ref navMeshQueryFilter).set_agentTypeID(agentTypeID); NavMesh.CalculatePath(a.get_transform().get_position(), b.get_transform().get_position(), navMeshQueryFilter, navMeshPath); if (navMeshPath.get_status() != null) { return(false); } for (int index = 0; index < navMeshPath.get_corners().Length; ++index) { if ((double)Vector3.Distance(navMeshPath.get_corners()[index], point) < 0.100000001490116) { return(true); } } return(false); }
public bool SetDestinationWithPathCheck(Vector3 _point, float _distance, bool _isStopped = false) { NavMeshPath _path = new NavMeshPath(); NavMeshHit _hit = (NavMeshHit)null; return(this.CalculatePath(_point, _path) && _path.get_status() == null && (this.FindClosestEdge(_point, out _hit) && ((NavMeshHit) ref _hit).get_hit()) && (double)_distance <= (double)((NavMeshHit) ref _hit).get_distance() && this.SetDestination(_point, _isStopped)); }
public static bool HasPathConnecting(GameObject a, GameObject b, int areaMask = -1, int agentTypeID = 0) { NavMeshPath navMeshPath = new NavMeshPath(); NavMeshQueryFilter navMeshQueryFilter = (NavMeshQueryFilter)null; ((NavMeshQueryFilter) ref navMeshQueryFilter).set_areaMask(areaMask); ((NavMeshQueryFilter) ref navMeshQueryFilter).set_agentTypeID(agentTypeID); NavMesh.CalculatePath(a.get_transform().get_position(), b.get_transform().get_position(), navMeshQueryFilter, navMeshPath); return(navMeshPath.get_status() == 0); }
public float GetRemainingDistance(Actor actor, NavMeshPath path) { float num = float.MaxValue; if (Object.op_Equality((Object)actor, (Object)null) || path == null || path.get_status() != null) { return(num); } num = 0.0f; for (int index = 0; index < this.CalcPath.get_corners().Length - 1; ++index) { num += Vector3.Distance(this.CalcPath.get_corners()[index], this.CalcPath.get_corners()[index + 1]); } return(num); }