fix: inactive menu items don't appear in RO debugger (#1291)

This commit is contained in:
bd_ 2024-10-15 19:13:08 -07:00 committed by GitHub
parent 662172c2e5
commit b73feb6b71
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 6 additions and 3 deletions

View File

@ -21,6 +21,8 @@ namespace nadena.dev.modular_avatar.core.editor
public const string BlendshapePrefix = "blendShape.";
public const string DeletedShapePrefix = "deletedShape.";
public bool OptimizeShapes = true;
public ImmutableDictionary<string, float> ForcePropertyOverrides { get; set; } = ImmutableDictionary<string, float>.Empty;
@ -277,13 +279,13 @@ namespace nadena.dev.modular_avatar.core.editor
// corresponding mesh. If we can't, delete ops are merged into the main list of operations.
initialStates = new Dictionary<TargetProp, object>();
foreach (var (key, info) in shapes.ToList())
{
if (info.actionGroups.Count == 0)
{
// never active control; ignore it entirely
shapes.Remove(key);
if (OptimizeShapes) shapes.Remove(key);
continue;
}
@ -297,7 +299,7 @@ namespace nadena.dev.modular_avatar.core.editor
// If we're now constant-on, we can skip animation generation
if (info.actionGroups[^1].IsConstant)
{
shapes.Remove(key);
if (OptimizeShapes) shapes.Remove(key);
}
}
}

View File

@ -264,6 +264,7 @@ namespace nadena.dev.modular_avatar.core.editor.Simulator
_lastComputeContext.InvokeOnInvalidate(this, MaybeRefreshUI);
var analysis = new ReactiveObjectAnalyzer(_lastComputeContext);
analysis.OptimizeShapes = false;
analysis.ForcePropertyOverrides = PropertyOverrides.Value;
analysis.ForceMenuItems = MenuItemOverrides.Value;
var result = analysis.Analyze(avatar.gameObject);