public Transform GetIdealMovementPosition(Vector3 pVector) { int markerIndex = 0; sortedMarkers = new List <SortedAIMarkerData>(allLegalMarkers.Count); for (int i = 0; i < allLegalMarkers.Count; i++) { if (allLegalMarkers[i] != null) { SortedAIMarkerData oData = new SortedAIMarkerData(); oData.markerObject = allLegalMarkers[i].gameObject; oData.distance = Vector3.Distance(pVector, allLegalMarkers[i].gameObject.transform.position); sortedMarkers.Add(oData); //Debug.Log(" Adding data to the list!!!!!"); } } sortedMarkers.Sort(SortByDistance); markerIndex = Random.Range(0, Mathf.FloorToInt(sortedMarkers.Count * .5f)); if (sortedMarkers[markerIndex].markerObject == null) { markerIndex = 0; } return(sortedMarkers[markerIndex].markerObject.transform); }
//*** Sort thing classes by distance static int SortByDistance(SortedAIMarkerData p1, SortedAIMarkerData p2) { return(p1.distance.CompareTo(p2.distance)); }