diff --git a/Assets/Scripts/Widgets/ModelWidget.cs b/Assets/Scripts/Widgets/ModelWidget.cs index 6dc6d938ef..c8c74ef424 100644 --- a/Assets/Scripts/Widgets/ModelWidget.cs +++ b/Assets/Scripts/Widgets/ModelWidget.cs @@ -333,7 +333,18 @@ public void SyncHierarchyToSubtree(string previousSubtree = null) string subpathToTraverse; if (!string.IsNullOrEmpty(previousSubtree)) { - subpathToTraverse = m_Subtree.Substring(previousSubtree.Length); + + // example case: + // previousSubtree = CarBody/Floor + // m_Subtree = CarBody/Floor/Wheel1 + // subpathToTraverse should be Floor/Wheel1 + + // Floor + string lastLevel = previousSubtree.Split("/")[^1]; + + int startIndex = previousSubtree.Length - (lastLevel.Length + "/".Length); + + subpathToTraverse = m_Subtree.Substring(startIndex); } else {