From d33cf5f6d976bce684bcdc179f17646fbdd2a69e Mon Sep 17 00:00:00 2001 From: Wojciech Figat Date: Fri, 22 Jul 2022 11:22:58 +0200 Subject: [PATCH] Fix crash when cooking mesh collision with a custom subset of material slots --- Source/Engine/Physics/CollisionCooking.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Source/Engine/Physics/CollisionCooking.cpp b/Source/Engine/Physics/CollisionCooking.cpp index a99be60de..672ff4409 100644 --- a/Source/Engine/Physics/CollisionCooking.cpp +++ b/Source/Engine/Physics/CollisionCooking.cpp @@ -116,6 +116,8 @@ bool CollisionCooking::CookCollision(const Argument& arg, CollisionData::Seriali vertexCounts.Resize(meshesCount); indexBuffers.Resize(needIndexBuffer ? meshesCount : 0); indexCounts.Resize(needIndexBuffer ? meshesCount : 0); + vertexCounts.SetAll(0); + indexCounts.SetAll(0); bool useCpuData = IsInMainThread() && !arg.Model->IsVirtual(); if (!useCpuData) { @@ -156,7 +158,7 @@ bool CollisionCooking::CookCollision(const Argument& arg, CollisionData::Seriali // It's easier than reading internal, versioned mesh storage format. // Also it works with virtual assets that have no dedicated storage. // Note: request all meshes data at once and wait for the tasks to be done. - Array tasks(meshesCount + meshesCount); + Array tasks(meshesCount + 2); for (int32 i = 0; i < meshesCount; i++) { const auto& mesh = *meshes[i];