- Home /
Custom collision between 2 moving objects
Hello everyone!
First time asker here =)
I'm making an Arkanoid game clone, and have troubles with resolving collisions between the paddle and the ball.
I decided to use custom collision detection using Physics2D.CircleCast
and movement with transform.Translate
instead of using RigidBody. This allows me to control the ball's movement with more precision, do trajectory corrections, and so on. I'm happy with the result overall: the ball bounces of the static obstacles without falling into collides even on a very high speed.
However, when it comes to bouncing of the paddle there are some problems. Here is a very simplified version of my code:
Vector2 movementAmount = direction * _currentSpeed * Time.deltaTime;
RaycastHit2D hit = Physics2D.CircleCast( ...)
if (hit.collider != null) {
// correct move amount
// calculate `nextDirection`
}
transform.Translate(movementAmount, Space.World);
direction = nextDirection;
The problem is, when the ball and the paddle move towards each other, there might be a frame or two when the CircleCast
"misses" the paddle, because these 2 objects are not moved synchronously.
What I need, is somewhat "predict" a collision that should happen.
Overall, I'm kinda overwhelmed. I like this idea of using a custom raycast controllers (like in Sebastian Lague's tutorial), but don't understand in general how to deal with interactions of 2 or more moving objects (without using a built-in Physics).
Thanks.
Your answer
Follow this Question
Related Questions
Physics2D.CircleCast result doesn't match with actual circle object's collision detection 0 Answers
How to get co-ordinates of end point of Raycast2D ? 1 Answer
PhysicsScene2D RaycastAll() 0 Answers
I can't get an npc to take damage.,I can't get my NPC to take damage. 0 Answers
Raycast2D hitting colliders it shouldnt be. 2018.1 pictures included. 0 Answers