From acd6c505439a0871115e3411811bc939a5056098 Mon Sep 17 00:00:00 2001 From: bd_ <bd_@nadena.dev> Date: Wed, 4 Sep 2024 17:00:08 -0700 Subject: [PATCH] fix: menu item override is not shown in sim for autoprop boolean toggles (#1104) --- Editor/ReactiveObjects/ParameterAssignerPass.cs | 13 +++++++++---- Editor/ReactiveObjects/Simulator/ROSimulator.cs | 2 +- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/Editor/ReactiveObjects/ParameterAssignerPass.cs b/Editor/ReactiveObjects/ParameterAssignerPass.cs index bc4f442c..d86bdda9 100644 --- a/Editor/ReactiveObjects/ParameterAssignerPass.cs +++ b/Editor/ReactiveObjects/ParameterAssignerPass.cs @@ -172,10 +172,14 @@ namespace nadena.dev.modular_avatar.core.editor internal static ControlCondition AssignMenuItemParameter( ModularAvatarMenuItem mami, Dictionary<string, float> simulationInitialStates = null, - IDictionary<string, ModularAvatarMenuItem> isDefaultOverrides = null) + IDictionary<string, ModularAvatarMenuItem> isDefaultOverrides = null, + bool? forceSimulation = null + ) { + var isSimulation = (simulationInitialStates != null || forceSimulation == true); + var paramName = mami?.Control?.parameter?.name; - if (mami?.Control != null && simulationInitialStates != null && ShouldAssignParametersToMami(mami)) + if (mami?.Control != null && isSimulation && ShouldAssignParametersToMami(mami)) { paramName = mami.Control?.parameter?.name; if (string.IsNullOrEmpty(paramName)) paramName = "___AutoProp/" + mami.GetInstanceID(); @@ -187,9 +191,10 @@ namespace nadena.dev.modular_avatar.core.editor if (isDefault) { simulationInitialStates[paramName] = mami.Control.value; - } else if (!simulationInitialStates.ContainsKey(paramName)) + } + else { - simulationInitialStates[paramName] = -999; + simulationInitialStates?.TryAdd(paramName, -999); } } diff --git a/Editor/ReactiveObjects/Simulator/ROSimulator.cs b/Editor/ReactiveObjects/Simulator/ROSimulator.cs index 10182deb..d4188fbc 100644 --- a/Editor/ReactiveObjects/Simulator/ROSimulator.cs +++ b/Editor/ReactiveObjects/Simulator/ROSimulator.cs @@ -268,7 +268,7 @@ namespace nadena.dev.modular_avatar.core.editor.Simulator return; } - var prop = ParameterAssignerPass.AssignMenuItemParameter(mami)?.Parameter; + var prop = ParameterAssignerPass.AssignMenuItemParameter(mami, forceSimulation: true)?.Parameter; if (prop == null) { elem.style.display = DisplayStyle.None;