private void grabNearestBeer() { Arm.GetComponent <Animator>().SetTrigger("Grab"); LaunchedBeer[] allBeers = FindObjectsOfType <LaunchedBeer>(); if (allBeers.Length == 0) { return; } LaunchedBeer nearestBeer = allBeers[0]; float nearestDistance = (transform.position - nearestBeer.transform.position).sqrMagnitude; foreach (LaunchedBeer beer in allBeers) { float distance = (transform.position - beer.transform.position).sqrMagnitude; if (distance < nearestDistance) { nearestDistance = distance; nearestBeer = beer; } } nearestBeer.Grab(); }
private void SpawnBeer() { GameObject go = Instantiate(beerPrefab, spawnpoint.position, beerPrefab.transform.rotation, transform); LaunchedBeer newBeer = go.GetComponent <LaunchedBeer>(); newBeer.status = Random.Range(0, 101); float myBeerChance = GameManager.GetMinigameSetting("GrabTheBeer", "MyBeer"); newBeer.Arm = Arm; newBeer.GetComponent <Mover>().Speed = GameManager.GetMinigameSetting("GrabTheBeer", "Speed"); if (newBeer.status > myBeerChance) { float randomCooldown = GaussianDistribution.Generate(beerStatusMean, beerStatusVariance); randomCooldown = Mathf.Clamp(randomCooldown, 3f, float.MaxValue); spawnBeerTimer = Time.time + randomCooldown; } else { spawnBeerTimer = float.MaxValue; } }