public AI_DestinationPoint GetRandomPoint(AI_DestinationPoint currentPoint) { List<AI_DestinationPoint> destinations = new List<AI_DestinationPoint>(); for (int i = 0; i < freeDestinationPoint.Count; i++) { if (freeDestinationPoint[i].isActive) destinations.Add(freeDestinationPoint[i]); } AI_DestinationPoint destination = destinations[Random.Range(0, destinations.Count)]; //Change Lists if (occupiedDestinationPoint.Contains(currentPoint)) { RemovePointToOccupied(currentPoint); } AddPointToOccupied(destination); return destination; }
public override void Execute() { destination = Girl_AI.possibleDestinations.GetRandomPoint(girlAI.currentPos); girlAI.currentPos = destination; girlAI.girlPathingAI.destination = destination.position; desiredRotation = Random.Range(0f, 360f); if (girlPos == null) girlPos = girlAI.gameObject.transform; time = 0; girlAI.anim.SetBool("isMoving", true); }
void RemovePointToOccupied(AI_DestinationPoint currentPoint) { occupiedDestinationPoint.Remove(currentPoint); freeDestinationPoint.Add(currentPoint); currentPoint.isOccupied = false; }
void AddPointToOccupied(AI_DestinationPoint destination) { occupiedDestinationPoint.Add(destination); freeDestinationPoint.Remove(destination); destination.isOccupied = true; }
public AI_DestinationPointsList(AI_DestinationPoint[] array) { freeDestinationPoint = new List<AI_DestinationPoint>(array); }