So I am trying to set up a simple 2D platformer. I have Box colliders on my character and walls/floors. The collision is handled, just not correctly. When you collide with a wall, the character partially penetrates that wall, then the wall forces them back out causes a bouncing effect, and I can’t get the character to stop flush to a wall.
The effect is basically a vibration between the two pictures below. I also have a link to a video for further clarification.


***Note : amtToMove is a float set to 5;
void fixedUpdate()
{
if(Input.GetKey("right"))
{
amtToMove = Input.GetAxisRaw("Horizontal") * playerSpeed * Time.deltaTime;
//rigidbody.AddForce(Vector3.right * amtToMove);
rigidbody.AddForce(Vector3.right * amtToMove,ForceMode.Impulse);
}
if(Input.GetKey("left"))
{
amtToMove = Input.GetAxisRaw("Horizontal") * playerSpeed * Time.deltaTime;
rigidbody.AddForce(Vector3.right * amtToMove,ForceMode.Impulse);
}
}
I have tried moving the character using Impulses, basic forces, and using basic translation. I am also handling the movement in the FixedUpdate() function.
I appreciate any and all help.
Hmm... just asking. Is it FixedUpdate() or fixedUpdate() ?
– DakwamineI am not sure about C# syntax or features, as I always use UnityScript. But in the scripting reference, FixedUpdate() is used with an uppercase first letter like the Update(), Start(), etc. I just do not understand why or how your fixedUpdate() is called... Unity or C# feature ? ^_^'
– Dakwamine