Brick Breaker game ball drops immidiately

Hey guys i was doing well with the brick breaker part of the course. When i was at course 58 (Destroy GameObject). No idea what i done but when i launch the ball it immidiately drops down. And if i locate it middle of the screen, this time it goes up! I check Physics 2D and Ball Scripts but couldn’t find the reason. Here’s a video about it :

EDIT : I start the project from the beginning. This time i don’t have that problem but still wondering why that happened.

Hi Berk,

Welcome to our community! :slight_smile:

Unity’s physic engine is highly optimised meaning it checks the position of a collider occasionally only. You could try to set the Collision Detection mode of the ball’s Rigidbody2D to “Continuous”. In most cases, that fixes the problem.

In our particular case, the problem is that we manipulate the transform.position via code and override the calculated values of the physics engine. It is likely that the position of the ball does not match the position of the collider anymore.

A better solution would be to disable the physics simulation for the ball while manipulating the position via code.

void Start ()
{
    paddleToBallVector = transform.position - paddle1.transform.position;
    myAudioSource = GetComponent<AudioSource>();
    myRigidBody2D = GetComponent<Rigidbody2D>();
    myRigidBody2D.simulated = false; // <-------- add this
}
 
private void LaunchOnMouseClick()
{
    if (Input.GetMouseButtonDown(0))
    {
        hasStarted = true;
        myRigidBody2D.velocity = new Vector2(xPush, yPush);
        myRigidBody2D.simulated = true; // <-------- add this
    }
}

I hope that makes sense. :slight_smile:


See also:

This topic was automatically closed 24 hours after the last reply. New replies are no longer allowed.

Privacy & Terms