Merge pull request #32274 from raphael10241024/fix_sync_physics_jitter
fix kinematicBody2D jitters when sync_to_physics is turned on
This commit is contained in:
commit
5ef5e6a7e4
2 changed files with 3 additions and 8 deletions
|
@ -46,8 +46,6 @@ void CollisionObject2D::_notification(int p_what) {
|
|||
else
|
||||
Physics2DServer::get_singleton()->body_set_state(rid, Physics2DServer::BODY_STATE_TRANSFORM, global_transform);
|
||||
|
||||
last_transform = global_transform;
|
||||
|
||||
RID space = get_world_2d()->get_space();
|
||||
if (area) {
|
||||
Physics2DServer::get_singleton()->area_set_space(rid, space);
|
||||
|
@ -73,19 +71,17 @@ void CollisionObject2D::_notification(int p_what) {
|
|||
} break;
|
||||
case NOTIFICATION_TRANSFORM_CHANGED: {
|
||||
|
||||
Transform2D global_transform = get_global_transform();
|
||||
|
||||
if (only_update_transform_changes && global_transform == last_transform) {
|
||||
if (only_update_transform_changes) {
|
||||
return;
|
||||
}
|
||||
|
||||
Transform2D global_transform = get_global_transform();
|
||||
|
||||
if (area)
|
||||
Physics2DServer::get_singleton()->area_set_transform(rid, global_transform);
|
||||
else
|
||||
Physics2DServer::get_singleton()->body_set_state(rid, Physics2DServer::BODY_STATE_TRANSFORM, global_transform);
|
||||
|
||||
last_transform = global_transform;
|
||||
|
||||
} break;
|
||||
case NOTIFICATION_EXIT_TREE: {
|
||||
|
||||
|
|
|
@ -67,7 +67,6 @@ class CollisionObject2D : public Node2D {
|
|||
int total_subshapes;
|
||||
|
||||
Map<uint32_t, ShapeData> shapes;
|
||||
Transform2D last_transform;
|
||||
bool only_update_transform_changes; //this is used for sync physics in KinematicBody
|
||||
|
||||
protected:
|
||||
|
|
Loading…
Reference in a new issue