diff --git a/Editor/Inspector/Menu/MenuInstallerEditor.cs b/Editor/Inspector/Menu/MenuInstallerEditor.cs index c447adc3..4fabf8d9 100644 --- a/Editor/Inspector/Menu/MenuInstallerEditor.cs +++ b/Editor/Inspector/Menu/MenuInstallerEditor.cs @@ -264,7 +264,7 @@ namespace nadena.dev.modular_avatar.core.editor { installTo.objectReferenceValue = null; - foreach (var target in targets) + foreach (var target in targets.Cast().OrderBy(ObjectHierarchyOrder)) { var installer = (ModularAvatarMenuInstaller) target; var child = new GameObject(); @@ -371,6 +371,20 @@ namespace nadena.dev.modular_avatar.core.editor Localization.ShowLanguageUI(); } + private string ObjectHierarchyOrder(Component arg) + { + var list = new List(); + var t = arg.transform; + while (t != null) + { + list.Add(t.GetSiblingIndex()); + t = t.parent; + } + + list.Reverse(); + return string.Join("", list.Select(n => (char) n)); + } + private void ExtractMenu() { serializedObject.ApplyModifiedProperties();