Merge pull request #45102 from nekomatata/fix-update-shape-data
Fix collision shape update when changing shape properties
This commit is contained in:
commit
7f8ab378e9
3 changed files with 9 additions and 1 deletions
|
@ -194,6 +194,7 @@ void CollisionPolygon2D::set_polygon(const Vector<Point2> &p_polygon) {
|
|||
|
||||
if (parent) {
|
||||
_build_polygon();
|
||||
_update_in_shape_owner();
|
||||
}
|
||||
update();
|
||||
update_configuration_warning();
|
||||
|
@ -208,6 +209,7 @@ void CollisionPolygon2D::set_build_mode(BuildMode p_mode) {
|
|||
build_mode = p_mode;
|
||||
if (parent) {
|
||||
_build_polygon();
|
||||
_update_in_shape_owner();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -141,6 +141,9 @@ void CollisionShape2D::_notification(int p_what) {
|
|||
}
|
||||
|
||||
void CollisionShape2D::set_shape(const Ref<Shape2D> &p_shape) {
|
||||
if (p_shape == shape) {
|
||||
return;
|
||||
}
|
||||
if (shape.is_valid()) {
|
||||
shape->disconnect("changed", callable_mp(this, &CollisionShape2D::_shape_changed));
|
||||
}
|
||||
|
@ -151,6 +154,7 @@ void CollisionShape2D::set_shape(const Ref<Shape2D> &p_shape) {
|
|||
if (shape.is_valid()) {
|
||||
parent->shape_owner_add_shape(owner_id, shape);
|
||||
}
|
||||
_update_in_shape_owner();
|
||||
}
|
||||
|
||||
if (shape.is_valid()) {
|
||||
|
|
|
@ -93,7 +93,6 @@ void CollisionShape3D::_notification(int p_what) {
|
|||
if (shape.is_valid()) {
|
||||
parent->shape_owner_add_shape(owner_id, shape);
|
||||
}
|
||||
_update_in_shape_owner();
|
||||
}
|
||||
} break;
|
||||
case NOTIFICATION_ENTER_TREE: {
|
||||
|
@ -170,6 +169,9 @@ void CollisionShape3D::_bind_methods() {
|
|||
}
|
||||
|
||||
void CollisionShape3D::set_shape(const Ref<Shape3D> &p_shape) {
|
||||
if (p_shape == shape) {
|
||||
return;
|
||||
}
|
||||
if (!shape.is_null()) {
|
||||
shape->unregister_owner(this);
|
||||
shape->disconnect("changed", callable_mp(this, &CollisionShape3D::_shape_changed));
|
||||
|
|
Loading…
Reference in a new issue