From 8b6cd350a4c3db0ebad019ea8a1d4072847e5c50 Mon Sep 17 00:00:00 2001 From: SashaRX Date: Thu, 6 Aug 2026 13:52:50 +0200 Subject: [PATCH] Validate source UV channels before transfer --- Editor/GroupedShellTransfer.cs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/Editor/GroupedShellTransfer.cs b/Editor/GroupedShellTransfer.cs index 297ae1b9..129b37b4 100644 --- a/Editor/GroupedShellTransfer.cs +++ b/Editor/GroupedShellTransfer.cs @@ -255,9 +255,10 @@ public static SourceShellInfo[] AnalyzeSource(Mesh sourceMesh) var uv2List = new List(); sourceMesh.GetUVs(0, uv0List); sourceMesh.GetUVs(1, uv2List); - if (uv0List.Count == 0 || uv2List.Count == 0) + if (uv0List.Count != sourceMesh.vertexCount || + uv2List.Count != sourceMesh.vertexCount) { - UvtLog.Error("[GroupedTransfer] Source mesh missing UV0 or UV2"); + UvtLog.Error("[GroupedTransfer] Source mesh has missing or incomplete UV0/UV2"); return null; } var uv0 = uv0List.ToArray(); @@ -870,8 +871,8 @@ static TransferResult TransferCore( $"oobMargin={uv2OobMargin:F6}, boundsTol={uv2BoundsTolerance:F6}"); } - if (srcUv0.Length == 0 || srcUv2.Length == 0) - { UvtLog.Error("[GroupedTransfer] Source missing UV0/UV2"); return result; } + if (srcUv0.Length != srcVerts.Length || srcUv2.Length != srcVerts.Length) + { UvtLog.Error("[GroupedTransfer] Source has missing or incomplete UV0/UV2"); return result; } UvProgress.ReportFromBackground($"'{targetMeshName}' ← '{sourceMeshName}'");