// Update is called once per frame void Update() { // if a treat goes offscreen, return it to the pool if (transform.position.y <= -5f) { treatManager.ReturnTreat(this.gameObject); // A treat has been destroyed, so spawn a new one at least two screen's height away from this treat Vector2 newTreatPos = new Vector2(Random.Range(-2f, 2f), Random.Range(transform.position.y + 8f, transform.position.y + 14f)); GameObject newTreat = treatManager.GetTreat(newTreatPos); } }
// Checks if there are treats in the player's treat-eating radius public void TreatCheck() { LayerMask mask = LayerMask.GetMask("Treat"); // Check a circle around the player and get all treat colliders overlapping the circle Collider2D[] collidersInTreatRadius = Physics2D.OverlapCircleAll(transform.position, treatRadius, mask); foreach (Collider2D collider in collidersInTreatRadius) { treatManager.ReturnTreat(collider.gameObject); // A treat has been destroyed, so spawn a new one at least two screen's height away from the character Vector2 newTreatPos = new Vector2(Random.Range(-2f, 2f), Random.Range(transform.position.y + 7f, transform.position.y + 14f)); GameObject newTreat = treatManager.GetTreat(newTreatPos); gameManager.AddTime(10); treatsEaten++; } }