why RigidBody2D can push CharacterBody2D ?

:information_source: Attention Topic was automatically imported from the old Question2Answer platform.
:bust_in_silhouette: Asked By xuebidao

godot 4.0.1 Version

English is not my native language, please forgive some expression errors

I have two scenes, one is a ball scene, created by RigidBody2D

and the other is a platform scene, created by CharacterBody2D

When I run it ,the ball falls with the effect of gravity, ball Proactively push the platform.

I don’t understand what’s happening

The same logic, if with godot version 3.5, the RigidBody2D can’t push KinematicBody2D

Is this what CharacterBody2D are meant to do?

How should I set it up so that the CharacterBody2D behave the same as KinematicBody2D in version 3.5 ?

maybe is Safe Marging

If the body is at least this close to another body, it will consider
them to be colliding and will be pushed away before performing the
actual motion.

A higher value means it’s more flexible for detecting collision, which
helps with consistently detecting walls and floors.

A lower value forces the collision algorithm to use more exact
detection, so it can be used in cases that specifically require
precision, e.g at very low scale to avoid visible jittering, or for
stability with a stack of character bodies.

or add priority?

Moreus | 2023-04-06 08:19

CharacterBody2D cannot be pushed by a RigidBody2D unless you make it do that with slide collisions.

Or if your CharacterBody2D is a child of another physics node, that would cause it. It must not be parented to a physics node.

You’ll have to post code for more help

aidave | 2023-04-06 14:37