From 23b6b93726c371cb88d72013acc58998348cf3f6 Mon Sep 17 00:00:00 2001 From: Ruan Lucas <79365912+RuanLucasGD@users.noreply.github.com> Date: Fri, 15 Sep 2023 19:13:32 -0400 Subject: [PATCH] add collision type to model importer --- Source/Engine/Tools/ModelTool/ModelTool.cpp | 2 +- Source/Engine/Tools/ModelTool/ModelTool.h | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/Source/Engine/Tools/ModelTool/ModelTool.cpp b/Source/Engine/Tools/ModelTool/ModelTool.cpp index 19f203667..922627b77 100644 --- a/Source/Engine/Tools/ModelTool/ModelTool.cpp +++ b/Source/Engine/Tools/ModelTool/ModelTool.cpp @@ -1079,7 +1079,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 9dc5bf067..ab5f79ddf 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