private bool FindNearestRefinery() { ResetNearestVars(); RefineryGatheringPoint[] refineryGatheringPoints = FindObjectsOfType <RefineryGatheringPoint>(); if (refineryGatheringPoints != null && refineryGatheringPoints.Length > 0) { foreach (RefineryGatheringPoint refineryGatheringPoint in refineryGatheringPoints.OrderBy(x => Vector3.Distance(transform.position, x.transform.position))) { if (refineryGatheringPoint.IsAvailable()) { refineryGatheringPoint.Occupy(); nearestRefineryGetheringPoint = refineryGatheringPoint; GetComponent <NavMeshAgent>().destination = nearestRefineryGetheringPoint.transform.position; return(true); } } return(false); } else { return(false); } }
private void ResetNearestVars() { nearestResourceNode = null; nearestResourceNodeGameobject = null; nearestRefineryGetheringPoint = null; }