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 BlendshapePrefix = "blendShape.";
public const string DeletedShapePrefix = "deletedShape."; public const string DeletedShapePrefix = "deletedShape.";
public bool OptimizeShapes = true;
public ImmutableDictionary<string, float> ForcePropertyOverrides { get; set; } = ImmutableDictionary<string, float>.Empty; 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. // corresponding mesh. If we can't, delete ops are merged into the main list of operations.
initialStates = new Dictionary<TargetProp, object>(); initialStates = new Dictionary<TargetProp, object>();
foreach (var (key, info) in shapes.ToList()) foreach (var (key, info) in shapes.ToList())
{ {
if (info.actionGroups.Count == 0) if (info.actionGroups.Count == 0)
{ {
// never active control; ignore it entirely // never active control; ignore it entirely
shapes.Remove(key); if (OptimizeShapes) shapes.Remove(key);
continue; continue;
} }
@ -297,7 +299,7 @@ namespace nadena.dev.modular_avatar.core.editor
// If we're now constant-on, we can skip animation generation // If we're now constant-on, we can skip animation generation
if (info.actionGroups[^1].IsConstant) 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); _lastComputeContext.InvokeOnInvalidate(this, MaybeRefreshUI);
var analysis = new ReactiveObjectAnalyzer(_lastComputeContext); var analysis = new ReactiveObjectAnalyzer(_lastComputeContext);
analysis.OptimizeShapes = false;
analysis.ForcePropertyOverrides = PropertyOverrides.Value; analysis.ForcePropertyOverrides = PropertyOverrides.Value;
analysis.ForceMenuItems = MenuItemOverrides.Value; analysis.ForceMenuItems = MenuItemOverrides.Value;
var result = analysis.Analyze(avatar.gameObject); var result = analysis.Analyze(avatar.gameObject);