From ff04a3e4de0c2a129e3cc739cbb61902495ab7aa Mon Sep 17 00:00:00 2001 From: Rerigferl <70315656+AshleyScarlet@users.noreply.github.com> Date: Sun, 1 Dec 2024 21:21:26 +0900 Subject: [PATCH] fix: changed not to use Instantiate when creating inverse root bone --- Editor/MeshSettingsPass.cs | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/Editor/MeshSettingsPass.cs b/Editor/MeshSettingsPass.cs index 3c8df32a..05db1d32 100644 --- a/Editor/MeshSettingsPass.cs +++ b/Editor/MeshSettingsPass.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Linq; +using UnityEditor; using UnityEngine; using Object = UnityEngine.Object; @@ -187,16 +188,17 @@ namespace nadena.dev.modular_avatar.core.editor { if (invertedRootBoneCache.TryGetValue(rootBone, out var cache)) { return cache; } - var cloned = Object.Instantiate(rootBone.gameObject, rootBone, true); - cloned.name = rootBone.gameObject.name + "-InvertedRootBone"; + var invertedRootBone = new GameObject($"{rootBone.gameObject.name}-InvertedRootBone"); + EditorUtility.CopySerialized(rootBone, invertedRootBone.transform); + invertedRootBone.transform.parent = rootBone; - var invertedRootBone = cloned.transform; - var scale = invertedRootBone.localScale; + var transform = invertedRootBone.transform; + var scale = transform.localScale; scale.x *= -1; - invertedRootBone.localScale = scale; + transform.localScale = scale; - invertedRootBoneCache[rootBone] = invertedRootBone; - return invertedRootBone; + invertedRootBoneCache[rootBone] = transform; + return transform; } } }