How to make Gravity/Forces without using rigidbody?

I want to use Force to push my object in a certain direction (for my 3d platformer, and I guess gravity comes into the mix as well) , but I don’t want to use a rigidbody for my main player, instead, I’m using a character controller, and is it possible to code the forces/gravity rather than using rigidbody? Thanks.

The code example in the manual for OnControllerColliderHit is doing pretty much exactly what you’re asking for I think?

Thanks for the reply, but what I’m trying to achieve is sort of a mario dive, similar to the one in super mario 64 and super mario odyssey. Kinda like a push in midair.

just subtract from the velocity.y

You can make simple physic equations on an FixedUpdate function, and update the player transform in it.

vf = vi + a * t

where
vf is velocity final
vi is velocity initial
a is acceleration (gravity)
t is time (Time.FixedDeltaTime if on fixedUpdate)

and apply it to the player transform

player.transform.position = new Vector3(player.transform.position.x, player.transform.position.y - vf, player.transform.position.z)

distanceDelta = v * dt + (adtdt)/2
newV = v + a*dt

it is important not to do this (below) if you value precision
newV = v + a*dt
distanceDelta = newV * dt
This is bad since it does not take into account the smooth raise of acceleration