You need to make a 2d platform style character.
Kinematic charcter is on floor.
The floor may have wrong mesh orientation.
Basically what i am trying to do is make my.
Calculate a 0 1 factor based on known speeds the character can achieve on floor var t inverse lerp min floor speed max floor speed velocity length add single jump velocity so the.
Recently i have been working on a 2d platformer which uses the inbuilt unity physics and rigidbodies.
Move and slide motion floor normal the last parameter is important too if you want to allow some specific angles to be taken as floor like on slopes or.
Add a box collider to the floor remove the mesh collider and check the result.
Floor max angle is the maximum angle in radians where a slope is still considered a floor or a ceiling rather than a wall.
We want action responsiveness and arcade feel.
The default value equals 45 degrees.
The method move and slide have a couple of parameters the 2nd one is the floor normal if you set it like 0 1 0 pointing up on y then when checking it should say true if is the close to the normal including slope tolerance.
Go back to the character scene and open the script the magic begins now.
New developers are often surprised at how complex a platform character can be to program.
Kinematicbody2d s is on floor seems to flicker in the example when moving towards the floor if you re moving towards it at very low speeds.
Check the floor collider.
First of all by kinematic body i mean the 3d node.
Kinematic character 2d.
This would lead to the player getting stuck inside the floor when landing a from a.
If i can read it directly from the kinematic mesh.
If a collision happens it stops right at the moment of the collision.
If infinite inertia is true body will be able to push rigidbody nodes but it won t also detect any collisions with them.
Moving the kinematic character.
Or just try turning the floor 180 degrees along the relevant axis.
Godot provides some built in tools to assist but there are as many solutions as there are games.
Kinematic body will do nothing by default but it has a useful function called kinematicbody2d move and collide this function takes a vector2 as an argument and tries to apply that motion to the kinematic body.
You want to add friction and acceleration to your kinematic character giving it a smoother feel.