From 0955b5f4527d9650f451ccf12b7bb06aefc2b881 Mon Sep 17 00:00:00 2001 From: Reina_Sakiria Date: Sat, 28 Dec 2024 14:14:57 +0900 Subject: [PATCH] fix: avoid InsufficientExecutionStackException --- Editor/NDMF/NegotiateAAOPass.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Editor/NDMF/NegotiateAAOPass.cs b/Editor/NDMF/NegotiateAAOPass.cs index e0f1f521..a4120e15 100644 --- a/Editor/NDMF/NegotiateAAOPass.cs +++ b/Editor/NDMF/NegotiateAAOPass.cs @@ -70,6 +70,8 @@ private static void UVEvacuation(List uvBuf, SkinnedMeshRenderer smr, i private static void ProvideToIsland(SkinnedMeshRenderer renderer, MeshRemovalProvider removalProvider) { var mesh = renderer.sharedMesh; + var editableMesh = UnityEngine.Object.Instantiate(mesh); + Span triangleBuffer = stackalloc int[3]; //今は 三角形以外を処理でき無いから、三角形以外があった時は何もしないという安全側にする if (Enumerable.Range(0, mesh.subMeshCount).Any(i => mesh.GetTopology(i) is not MeshTopology.Triangles)) { return; } @@ -96,7 +98,6 @@ private static void ProvideToIsland(SkinnedMeshRenderer renderer, MeshRemovalPro { foreach (var tri in island.triangles) { - Span triangleBuffer = stackalloc int[3]; triangleBuffer[0] = tri[0]; triangleBuffer[1] = tri[1]; triangleBuffer[2] = tri[2]; @@ -132,7 +133,6 @@ private static void ProvideToIsland(SkinnedMeshRenderer renderer, MeshRemovalPro vertex.RemoveAll(i => usedHash.Contains(i) is false); var finalVertexes = vertex.Concat(vanishVertex).ToList(); - var editableMesh = UnityEngine.Object.Instantiate(mesh); MeshInfoUtility.ClearTriangleToWriteVertex(editableMesh, meshDesc, finalVertexes); for (var i = 0; editableMesh.subMeshCount > i; i += 1)