- Home /
How can i make a gameobject grow in size each time it collides with other gameobject?
Hello, i have been trying to make it so that when my player0s gameobject collides with a "power up" it grows in size
if (other.gameObject.CompareTag("WindPowerUp"))
{
manager.GetComponent<SpawnManager>().currentWindPowerUp -= 1;
Destroy(other.gameObject);
powerUpCD = false;
StartCoroutine(PowerUpCD(10f));
}
if(other.gameObject.CompareTag("WindPowerUp") && powerUpCD)
{
Player.transform.localScale += new Vector3(2, 2, 2);
powerUpCD = false;
StartCoroutine(PowerUpCD(10f));
}
It doesnt work as it does not change the scale, I have checked so the coroutine works and it does. Any help would be appreciated
You are destroying the powerup before the 2nd if block could reach it
Answer by rage_co · Jul 19, 2021 at 05:09 AM
you are destroying the powerup object in the first if statement, which doesn't give the second if statement, any object to compare tag with, since it's already destroyed...you should remove the compare tag part from the second if and move it inside the first one...like this
if (other.gameObject.CompareTag("WindPowerUp"))
{
manager.GetComponent<SpawnManager>().currentWindPowerUp -= 1;
if(powerUpCD)
{
Player.transform.localScale += new Vector3(2, 2, 2);
}
Destroy(other.gameObject);
powerUpCD = false;
StartCoroutine(PowerUpCD(10f));
}
and this should solve the problems, including the problem that since you set powerUpCD false immediately before the second if statement is run...there is no chance that the powerUpCD variable will return true in the second if statement, and so it has to be run before....Hope this helps
What i meant with my code was that if powerUPCD was true, then it would add scale,set itself false and then start a coroutine that sets powerUPCD to true in 10 seconds, then i had the first part which only checks if it has collided with the object that has the tag WindPowerUp, so that if powerUPCD wasnt true, it would only destroy the power up gameobject and start the coroutine. Either way i tried the code you wrote but it still doesnt work, the scale remains unchanged, which is the opposite of what it is meant to do, any other idea? Thank you anyways, help is appreciated
i understood that and i think the code i gave works well for that....as for the object not scaling..i have no idea why that's happening but i'll dig into it and hopefully reach back to you soon
just a question, what exactly is player? this info can be crucial
player refers to the Game object variable which would be the player itself
Your answer
Follow this Question
Related Questions
Changing local scale effect texture codes 1 Answer
How to get and set the real scale of object and not local scale? 0 Answers
Attempting to Calculate and Change Scale of Platforms Sets Scale to 0 1 Answer
LocalScale and uv 1 Answer
How to get expanding object collide when it touches others? 1 Answer