Worm GetPossibleWorm() { Worm worm = null; var peakCollider = GetComponent <CircleCollider2D>(); // From all worms in the scene... foreach (Worm w in FindObjectsOfType <Worm>()) { // Find the one that's inside our collider if (peakCollider.bounds.Contains(w.transform.position)) { worm = w; break; } } return(worm); }
IEnumerator EatingSequence() { Worm worm = GetPossibleWorm(); // Play the In animation and wait animator.ChangeAnimation(animEatIn); yield return(animator.PlayAndPauseAt()); if (worm) { // Hide the worm worm.GetEaten(); // Play the Mid animation animator.ChangeAnimation(animEatMid); animator.SetFrame(0); animator.Play(); float t = Time.time; // Wait while (Input.GetButton(eatButton) && Time.time - t < 1) // while we hold the button { yield return(null); } // Wait until the middle animation ends before playing the next (prince of persia style) while (animator.CurrentFrame != 0) { yield return(null); } } animator.SetFrame(0); // Play the Out animation animator.ChangeAnimation(animEatOut); yield return(animator.PlayAndPauseAt()); // Go back to Idle animator.ChangeAnimation(animationIdle); currentEatingSequence = null; }