fix: MenuInstaller does not support cloning (#1173)

This commit is contained in:
lilxyzw 2024-09-21 16:21:35 +09:00
parent 5090d45cfe
commit d7ce00cbe5

View File

@ -7,6 +7,7 @@ using System.Linq;
using JetBrains.Annotations; using JetBrains.Annotations;
using nadena.dev.modular_avatar.core.menu; using nadena.dev.modular_avatar.core.menu;
using nadena.dev.modular_avatar.editor.ErrorReporting; using nadena.dev.modular_avatar.editor.ErrorReporting;
using nadena.dev.ndmf;
using UnityEngine; using UnityEngine;
using VRC.SDK3.Avatars.Components; using VRC.SDK3.Avatars.Components;
using VRC.SDK3.Avatars.ScriptableObjects; using VRC.SDK3.Avatars.ScriptableObjects;
@ -102,7 +103,7 @@ namespace nadena.dev.modular_avatar.core.editor.menu
PushControl(control); PushControl(control);
} }
if (_menuToInstallerMap.TryGetValue(expMenu, out var installers)) if (_menuToInstallerMap.TryGetValue(ObjectRegistry.GetReference(expMenu), out var installers))
{ {
foreach (var installer in installers) foreach (var installer in installers)
{ {
@ -311,7 +312,7 @@ namespace nadena.dev.modular_avatar.core.editor.menu
// initial validation // initial validation
if (installer.menuToAppend == null && installer.GetComponent<MenuSource>() == null) return; if (installer.menuToAppend == null && installer.GetComponent<MenuSource>() == null) return;
var target = installer.installTargetMenu ? (object) installer.installTargetMenu : RootMenuKey; var target = installer.installTargetMenu ? (object) ObjectRegistry.GetReference(installer.installTargetMenu) : RootMenuKey;
if (!_targetMenuToInstaller.TryGetValue(target, out var targets)) if (!_targetMenuToInstaller.TryGetValue(target, out var targets))
{ {
targets = new List<ModularAvatarMenuInstaller>(); targets = new List<ModularAvatarMenuInstaller>();