Hey Fellow Gamers,
Just hit a rut in my current 2D game development. I made a room with collider walls and a Trigger floor. My walls are bouncy and working fine, and my floor loads the lose level when It comes into contact with the moving ball. But after clicking play, after five or so seconds, the lose level opens, even if I never even launched the ball!
Apart from the ball, no other object can collide with the floor trigger. I wrote a script for the floor like this:
void OnTriggerEnter2D(Collider2D coll) {
Application.LoadLevel("Lose");
Debug.Log("Log");
}
}
The “Log” that prints out tells clearly that this script is responsible for loading the level even without the ball ever hitting the floor. It happens in the game build as well. What is going on here? Is my moving platform out of whack? When I detach the game view and see the scene in the background, the game plays as intended, so I can’t see in the scene view what is setting it off! Very strange!
UPDATE:
I fixed the bug by modifying the script to check if the ball is actually hitting the collider and if the game has started. But still it will print thousands of log messages to the console. This means my paddle is most likely responsible for this error. maybe it is getting teleported downwards invisibly or something?
public GameObject go;
void OnTriggerEnter2D(Collider2D coll) {
Debug.Log("Log");
Ball ball = go.GetComponent <Ball> ();
bool cur = ball.Started;
if (coll.gameObject.name == "Ball" && cur)
{
Application.LoadLevel("Lose");
}
}