|
@@ -70,6 +70,7 @@ void CollisionPolygon3D::_build_polygon() {
|
|
}
|
|
}
|
|
|
|
|
|
convex->set_points(cp);
|
|
convex->set_points(cp);
|
|
|
|
+ convex->set_margin(margin);
|
|
parent->shape_owner_add_shape(owner_id, convex);
|
|
parent->shape_owner_add_shape(owner_id, convex);
|
|
parent->shape_owner_set_disabled(owner_id, disabled);
|
|
parent->shape_owner_set_disabled(owner_id, disabled);
|
|
}
|
|
}
|
|
@@ -155,6 +156,17 @@ bool CollisionPolygon3D::is_disabled() const {
|
|
return disabled;
|
|
return disabled;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+real_t CollisionPolygon3D::get_margin() const {
|
|
|
|
+ return margin;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+void CollisionPolygon3D::set_margin(real_t p_margin) {
|
|
|
|
+ margin = p_margin;
|
|
|
|
+ if (parent) {
|
|
|
|
+ _build_polygon();
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
String CollisionPolygon3D::get_configuration_warning() const {
|
|
String CollisionPolygon3D::get_configuration_warning() const {
|
|
String warning = Node3D::get_configuration_warning();
|
|
String warning = Node3D::get_configuration_warning();
|
|
|
|
|
|
@@ -189,11 +201,15 @@ void CollisionPolygon3D::_bind_methods() {
|
|
ClassDB::bind_method(D_METHOD("set_disabled", "disabled"), &CollisionPolygon3D::set_disabled);
|
|
ClassDB::bind_method(D_METHOD("set_disabled", "disabled"), &CollisionPolygon3D::set_disabled);
|
|
ClassDB::bind_method(D_METHOD("is_disabled"), &CollisionPolygon3D::is_disabled);
|
|
ClassDB::bind_method(D_METHOD("is_disabled"), &CollisionPolygon3D::is_disabled);
|
|
|
|
|
|
|
|
+ ClassDB::bind_method(D_METHOD("set_margin", "margin"), &CollisionPolygon3D::set_margin);
|
|
|
|
+ ClassDB::bind_method(D_METHOD("get_margin"), &CollisionPolygon3D::get_margin);
|
|
|
|
+
|
|
ClassDB::bind_method(D_METHOD("_is_editable_3d_polygon"), &CollisionPolygon3D::_is_editable_3d_polygon);
|
|
ClassDB::bind_method(D_METHOD("_is_editable_3d_polygon"), &CollisionPolygon3D::_is_editable_3d_polygon);
|
|
|
|
|
|
ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "depth"), "set_depth", "get_depth");
|
|
ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "depth"), "set_depth", "get_depth");
|
|
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "disabled"), "set_disabled", "is_disabled");
|
|
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "disabled"), "set_disabled", "is_disabled");
|
|
ADD_PROPERTY(PropertyInfo(Variant::PACKED_VECTOR2_ARRAY, "polygon"), "set_polygon", "get_polygon");
|
|
ADD_PROPERTY(PropertyInfo(Variant::PACKED_VECTOR2_ARRAY, "polygon"), "set_polygon", "get_polygon");
|
|
|
|
+ ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "margin", PROPERTY_HINT_RANGE, "0.001,10,0.001"), "set_margin", "get_margin");
|
|
}
|
|
}
|
|
|
|
|
|
CollisionPolygon3D::CollisionPolygon3D() {
|
|
CollisionPolygon3D::CollisionPolygon3D() {
|