diff --git a/plugin_collada/editor_import_collada_mdr.cpp b/plugin_collada/editor_import_collada_mdr.cpp index 1a70bb7..a627b0c 100644 --- a/plugin_collada/editor_import_collada_mdr.cpp +++ b/plugin_collada/editor_import_collada_mdr.cpp @@ -152,7 +152,10 @@ Error EditorImportColladaMdr::import(const String &p_source_file, const String & shape->set_extents(size * 0.5); - mdr->add_collision_shape(aabb.position, shape); + Vector3 pos = aabb.position; + pos += size / 2.0; + + mdr->add_collision_shape(pos, shape); } else if (collider_type == MeshDataResource::COLLIDER_TYPE_APPROXIMATED_CAPSULE) { Ref m; m.instance(); @@ -167,7 +170,10 @@ Error EditorImportColladaMdr::import(const String &p_source_file, const String & shape->set_height(size.y * 0.5); shape->set_radius(MIN(size.x, size.z) * 0.5); - mdr->add_collision_shape(aabb.position, shape); + Vector3 pos = aabb.position; + pos += size / 2.0; + + mdr->add_collision_shape(pos, shape); } else if (collider_type == MeshDataResource::COLLIDER_TYPE_APPROXIMATED_CYLINDER) { Ref m; m.instance(); @@ -182,7 +188,10 @@ Error EditorImportColladaMdr::import(const String &p_source_file, const String & shape->set_height(size.y * 0.5); shape->set_radius(MIN(size.x, size.z) * 0.5); - mdr->add_collision_shape(aabb.position, shape); + Vector3 pos = aabb.position; + pos += size / 2.0; + + mdr->add_collision_shape(pos, shape); } else if (collider_type == MeshDataResource::COLLIDER_TYPE_APPROXIMATED_SPHERE) { Ref m; m.instance(); diff --git a/plugin_gltf/editor_import_gltf_mdr.cpp b/plugin_gltf/editor_import_gltf_mdr.cpp index ea7cea9..615aa16 100644 --- a/plugin_gltf/editor_import_gltf_mdr.cpp +++ b/plugin_gltf/editor_import_gltf_mdr.cpp @@ -154,7 +154,10 @@ Error EditorImportGLTFMdr::import(const String &p_source_file, const String &p_s shape->set_extents(size * 0.5); - mdr->add_collision_shape(aabb.position, shape); + Vector3 pos = aabb.position; + pos += size / 2.0; + + mdr->add_collision_shape(pos, shape); } else if (collider_type == MeshDataResource::COLLIDER_TYPE_APPROXIMATED_CAPSULE) { Ref m; m.instance(); @@ -169,7 +172,10 @@ Error EditorImportGLTFMdr::import(const String &p_source_file, const String &p_s shape->set_height(size.y * 0.5); shape->set_radius(MIN(size.x, size.z) * 0.5); - mdr->add_collision_shape(aabb.position, shape); + Vector3 pos = aabb.position; + pos += size / 2.0; + + mdr->add_collision_shape(pos, shape); } else if (collider_type == MeshDataResource::COLLIDER_TYPE_APPROXIMATED_CYLINDER) { Ref m; m.instance(); @@ -184,7 +190,10 @@ Error EditorImportGLTFMdr::import(const String &p_source_file, const String &p_s shape->set_height(size.y * 0.5); shape->set_radius(MIN(size.x, size.z) * 0.5); - mdr->add_collision_shape(aabb.position, shape); + Vector3 pos = aabb.position; + pos += size / 2.0; + + mdr->add_collision_shape(pos, shape); } else if (collider_type == MeshDataResource::COLLIDER_TYPE_APPROXIMATED_SPHERE) { Ref m; m.instance();