How can I make my ball bounce with a nice clean curve?

Hey everyone! This is my first post here as I am learning Unity I wanted to create a little game in order to understand it better and learn faster.

The game consists in a bouncy ball on a platform that starts bouncing on the platforms in front of it put in a distance of 0.25 from one another as soon as it gets an input.

I thought that was a very simple game idea until I started having some problems with the bounce/jump.

Here is my problem.

I made the ball jump the same height using the physics material, but when I try to make it bounce with rhythm so that it falls on the center of the platforms while moving I can’t seam to work it out.
So I tried to use MoveTowards on collision with the floor giving it its actual position and its actual position + 0,25 on the z axis.

This completely brakes the bounce and its curve and is nowhere precise.

How can I give my ball a nice and precise bounce every 0,25 on a specific axis so that does not fall between the platforms?

Try classic setup to separate player controller from player presentation here.

player controller

Player controller is the collection of components that will move itself and presentation components around, interacts with Physics world but stays invisible to the player.

player presentation

Player presentation is a Mesh or, more often, a SkinnedMeshRenderer & Animator to portray player mesh looks and it’s purely artistic movements (like a ball that is bouncing up&down).


PS: I forgot to offset the ball so it always at the bottom of the capsule - so do that.


This way player controller will not be bouncing but merely moving around while player presentation will be doing the bouncing part (animated in blender or something like that). Also player controller will be changing animations on player presentation to match the gameplay situation ie.: idle, moving, jumping, falling, etc.