-
-
Notifications
You must be signed in to change notification settings - Fork 21.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Bullet] Inconsistent generation of Area body_entered/body_exited signals #22889
Comments
Partially fixed by #25180 Correctly, now the exited signal is not called just as soon the body stops moving, while overlapping. The remaining issue is that when the blue character overlaps the green area, if you disable the area's collision shapes, the exited/entered signals are not called (BOTH in godotphysics and bullet) |
Tested in the current master branch, and it seems like the |
The current behavior is kinda unintuitive, but technically understandable For example, sleeping rigidbodies are behaving similarly: the callbacks are not called until they wake So we could think of a KinematicBody that is not move_and_colliding as if it was in a "sleeping" state Still, Godot is about usability and intuitiveness: if I were a beginner I would expect signals to be fired, I guess its better to close this, and later formalize all the expected physics behaviors for the planned physics rewrite |
According to @reduz this sounds like a bug more than intended design:
|
For the reference, since it's similar I checked if #33615 fixes this issue, but it doesn't appear to. |
Just an hint: adding this line
for example before this line
seems to fix the issue in bullet, probably something about this condition godot/modules/bullet/space_bullet.cpp Line 699 in 045a5ce
But I'm not sure which is the correct place to set isTransformChanged, or if it needs another dirty state flag |
Godot version:
0063ba9
EDIT:
Partially fixed by #25180 see comment below
Issue description:
Area entered/exited signal appears invalid, compared to GodotPhysics
StaticBody enters an Area, a body_exited is generated right after a body_entered.
KinematicBody same thing, as soon as it stops moving.
RigidBody looks like it works ok, maybe because its always moving (in the sample)
In godotphysics disabling a shape doesnt trigger body_exited
Steps to reproduce:
See sample project:
Minimal reproduction project:
bug_area_exit.zip
Note
Other stuff observed in the sample, outside the scope of the Issue:
The text was updated successfully, but these errors were encountered: