Hi I’m trying to trigger an Animation using a Collider. I have an IEnumerator setup so that it happens a couple seconds after the collision takes place.
Problem is that when I place the animation code BEFORE the “yield return new WaitForSeconds”, it works fine, but AFTER, for some reason it doesn’t work.
See at the bottom below for the LeftYellowSideWall code. That is the Animation. And the WaitForSeconds is a couple lines above it.
IEnumerator OnCollisionEnter2D (Collision2D Ball8Layer5Collider)
{
if (Ball8Layer5Collider.gameObject.tag == "ball" && BallIsGreen == false)
{
FakeBalls.SetActive (false);
RevealedBalls.SetActive (false);
//NorthWall.SetActive (true);
rend.sharedMaterial = greenBall [1];
audio.PlayOneShot (LockedAudio, volume);
LockedSoundPlayed = true;
BallIsGreen = true;
}
if (Ball8Layer5Collider.gameObject.tag == "ball" && LockedSoundPlayed == true)
{
audio.PlayOneShot (GreenBallHitSound, volumeGreenBallHit);
}
if (Ball8Layer5Collider.gameObject.tag == "ball" && Ball15.GetComponent<Ball15Layer4GreenCollide>().BallIsGone == true)
{
BG_Owl.GetComponent<SpriteRenderer> ().enabled = false;
transBand.GetComponent<VideoPlayer> ().enabled = true;
audio.PlayOneShot (BGClankReverbSound, volumeBGClankReverb);
//Ball8.SetActive (false);
LeftYellowSideWall.GetComponent<LeftYellowWall> ().ColorChangeRed5();
RightYellowSideWall.GetComponent<RightYellowWall> ().ColorChangeRed5 ();
this.GetComponent<MeshRenderer>().enabled = false;
this.GetComponent<CircleCollider2D> ().enabled = false;
BallIsGreen = false;
BallIsGone = true;
MinusCounterFloor.GetComponent<BoxCollider2D> ().enabled = true;
CountTrigger.GetComponent<BoxCollider2D> ().enabled = true;
numberText.GetComponent<Text> ().color = new Color (0.035f, 0f, 1f, 1f);
yield return new WaitForSeconds (2);
GreenBalls.SetActive (false);
LeftYellowSideWall.GetComponent<LeftYellowWall> ().LeftYellowWallAnim.Play ("Left Yellow Side Wall MOVE BACK", -1, 0f);
}
}