2DCollider Issues
I am having an issue with collisions in my top-down game. Currently when my player collides with most of the environment they will stop or slow down, but if I continue to move in the objects direction the player will still pass through it.
The environment all have a rigidbody attached to their tileset and have been set to static. They use a composite collider and a tilemap collider. The player has a dynamic rigidbody and a capsule collider.
My players movement code (speed is 200):
//Get player input
float moveHorizontal = Input.GetAxis("Joy1 LeftStickHorizontal");
float moveVertical = Input.GetAxis("Joy1 LeftStickVertical");
//Calculating the new point to move to
Vector2 movement = new Vector2(moveHorizontal, moveVertical);
rBody.velocity = movement * speed;
Here are pics of my colliders for the environment. I've hidden my ground tiles to make the colliders easier to see. On the left side of this cliff, the collider is working as intended. I've increased the edge radius for all my environment colliders in a hope to get them to maybe spread out more and make them thicker. It doesn't seem to matter though.
This nook in the corner and along the top of the cliffs is not working.
Nor is the collider for this rock in the image I linked,
Nor is it working for the right side of this cliff. It does work for my lake in the picture.
Is anyone able to help?
Answer by mccarm416 · Dec 25, 2018 at 06:24 AM
I ended up finding this out myself after tinkering around. Turns out it was because I was using velocity, it lead to some weird physics errors with my colliders.
Changing the line
rBody.velocity = movement * speed;
to
rBody.AddForce(movement * speed);
totally fixed everything. Hopefully this helps someone else out!
Your answer
Follow this Question
Related Questions
2D Platformer: Failure to jump through platform 0 Answers
How can i store all colliders of colliders which collide with a prefab? 1 Answer
How can i optimize colliders in my character? ( character stuck) 0 Answers
Trying to collide in grid like movement 1 Answer
Detecting collision altho disabled on matrix. Help!! :'( 0 Answers