diff --git a/Source/Engine/Tools/ModelTool/ModelTool.cpp b/Source/Engine/Tools/ModelTool/ModelTool.cpp index 91cfe74e4..ad287be86 100644 --- a/Source/Engine/Tools/ModelTool/ModelTool.cpp +++ b/Source/Engine/Tools/ModelTool/ModelTool.cpp @@ -1107,7 +1107,7 @@ bool ModelTool::ImportModel(const String& path, ModelData& meshData, Options& op #if COMPILE_WITH_PHYSICS_COOKING // Create collision CollisionCooking::Argument arg; - arg.Type = CollisionDataType::TriangleMesh; + arg.Type = options.CollisionType; arg.OverrideModelData = &collisionModel; auto assetPath = autoImportOutput / StringUtils::GetFileNameWithoutExtension(path) + TEXT("Collision") ASSET_FILES_EXTENSION_WITH_DOT; if (CreateCollisionData::CookMeshCollision(assetPath, arg)) diff --git a/Source/Engine/Tools/ModelTool/ModelTool.h b/Source/Engine/Tools/ModelTool/ModelTool.h index 4a8f3d3fc..bfd91215e 100644 --- a/Source/Engine/Tools/ModelTool/ModelTool.h +++ b/Source/Engine/Tools/ModelTool/ModelTool.h @@ -6,6 +6,7 @@ #include "Engine/Core/Config.h" #include "Engine/Content/Assets/ModelBase.h" +#include "Engine/Physics/CollisionData.h" #if USE_EDITOR #include "Engine/Core/ISerializable.h" #include "Engine/Graphics/Models/ModelData.h" @@ -262,6 +263,9 @@ public: // If specified, all meshes which name starts with this prefix will be imported as a separate collision data (excluded used for rendering). API_FIELD(Attributes="EditorOrder(100), EditorDisplay(\"Geometry\"), VisibleIf(nameof(ShowGeometry))") String CollisionMeshesPrefix = TEXT(""); + // The type of collision that should be generated if has collision prefix especified + API_FIELD(Attributes = "EditorOrder(105), EditorDisplay(\"Geometry\"), VisibleIf(nameof(ShowGeometry))") + CollisionDataType CollisionType = CollisionDataType::TriangleMesh; public: // Transform