public static Vector2 GetClosestPickup(List <PickupActivator> activePickups, int activeCount, GameObject player) { /* This method checks if there are any active pickups in the game by getting an active pickup list * from the main pickup list controller. Then it checks which one is the closest * and returns its position as a vector. */ PickupActivator closestPickup = null; float closestDistance = 100; if (activeCount > 0) { for (int i = 0; i < activeCount; i++) { float distance = AICalculate.CalculateLengthBetween(player, activePickups[i].GetComponent <Transform>().position.x, activePickups[i].GetComponent <Transform>().position.y); if (distance < closestDistance) { closestDistance = distance; closestPickup = activePickups[i]; } } } if (closestPickup == null) { return(new Vector2(0, 0)); } return(new Vector2(closestPickup.GetComponent <Transform>().position.x, closestPickup.GetComponent <Transform>().position.y)); }
public void LateUpdate() { List <PickupActivator> pickupList = pickupControl.pickupList.GetAvailablePickups(); PickupActivator activator = null; if (pickupControl.pickupList.GetAvailableCount() > 3 && pickupControl.pickupTimer.GetTimeLeft() < 0) { activator = pickupList[Random.Range(0, pickupList.Count)]; activator.Activate(); pickupControl.pickupTimer.ResetTimer(); } }
public void MakeUnavailable(PickupActivator pickup) { pickupList.Remove(pickup); activeList.Add(pickup); }