Sprites being skipped in sprite change script
I tried asking this once and got no replies, but I still can't get it working properly. Each instance of the prefab in question has a copy of this script on it, but they seem to be interfering with each other anyway. It skips to dmgSprite2 and dmgSprite3 really frequently, only maybe 1 in 4 buildings performs as it should, going down the line of sprites appropriately. Can someone explain to me what is happening to cause this? I tried playing with coroutines and multiple loop iterations and nothing is fixing the issue.
void OnCollisionStay2D(Collision2D collision)
{
if (Input.GetKeyDown(KeyCode.Space)) //If space is pressed..
{
while(collision.gameObject.name == ("Player")) //While Player is colliding..
{
BlowUp(); //Initiate sprite change.
Debug.Log("Blow Up");
return;
}
}
}
void BlowUp()
{
if (spriteRenderer.sprite == mainSprite) //If the sprite is mainSprite..
{
spriteRenderer.sprite = dmgSprite; //Change to dmgSprite.
Debug.Log("Check 1");
}
else if (spriteRenderer.sprite == dmgSprite) //If the sprite is dmgSprite..
{
spriteRenderer.sprite = dmgSprite2; //Change to dmgSprite2.
Debug.Log("Check 2");
}
else if (spriteRenderer.sprite == dmgSprite2) //If the sprite is dmgSprite2..
{
spriteRenderer.sprite = dmgSprite3; //Change to dmgSprite3.
Debug.Log("Check 3");
}
}
}
Your answer
Follow this Question
Related Questions
Sprites Pink After Upgrading Unity 1 Answer
Problem Changing Sprites with an Array of Sprites 1 Answer
Ordering my multi layered sprite characters (2D, Isometric) by the z Axis 0 Answers
Getting name of Spritesheet on runtime with C#? (Not individual SpriteName) 1 Answer
Change sprite onTriggerEnter2D 0 Answers