logo SERENITY
Game Systems Foundation
Search Results for

    Show / Hide Table of Contents

    Class MenuValidationSnapshot

    One ValidateWithDraftIssues(Input) pass: the batch-wide Serenity.Global.Infrastructure.Editor.SerenityCreationValidationResult every other creation engine already returns, plus that same scan's own per-draft breakdown — one entry per Drafts position, in the same order. Exists so MenuManagerWindow can compute the whole batch's findings exactly ONCE per OnGUI and still hand each draft its own slice to Serenity.Menu.Infrastructure.Editor.Builder.ViewNodeListGui and Serenity.Menu.Infrastructure.Editor.Builder.MenuDraftDetailGui, instead of either re-scanning the whole project a second (or once-per-row) time through a per-draft call of its own.

    Serenity.Menu.Infrastructure.Editor.Builder.MenuValidationSnapshot.GraphIssues and Serenity.Menu.Infrastructure.Editor.Builder.MenuValidationSnapshot.Rows extend the same "compute once per frame" contract to the Menus step's navigation graph: MenuManagerWindow builds them alongside Result and IssuesByDraft in its own OnBeforeDrawStep, so both live on this one snapshot instead of a second per-frame cache. A snapshot built by ValidateWithDraftIssues(Input) alone — outside the wizard, e.g. a headless validator — carries neither: both default to empty.

    Inheritance
    object
    MenuValidationSnapshot
    Inherited Members
    object.ToString()
    object.Equals(object)
    object.Equals(object, object)
    object.ReferenceEquals(object, object)
    object.GetHashCode()
    object.GetType()
    Namespace: Serenity.Menu.Infrastructure.Editor.Builder
    Assembly: Serenity.UnityMenu.Infrastructure.Editor.dll
    Syntax
    public sealed class MenuValidationSnapshot

    Constructors

    MenuValidationSnapshot(SerenityCreationValidationResult, IReadOnlyList<IReadOnlyList<AuthoringIssue>>)

    Declaration
    public MenuValidationSnapshot(SerenityCreationValidationResult result, IReadOnlyList<IReadOnlyList<AuthoringIssue>> issuesByDraft)
    Parameters
    Type Name Description
    SerenityCreationValidationResult result
    IReadOnlyList<IReadOnlyList<AuthoringIssue>> issuesByDraft

    Fields

    IssuesByDraft

    This draft's own findings, indexed exactly like the Drafts list the snapshot was computed from.

    Declaration
    public readonly IReadOnlyList<IReadOnlyList<AuthoringIssue>> IssuesByDraft
    Field Value
    Type Description
    IReadOnlyList<IReadOnlyList<AuthoringIssue>>

    Result

    The batch-wide result — the same one Validate(Input) returns.

    Declaration
    public readonly SerenityCreationValidationResult Result
    Field Value
    Type Description
    SerenityCreationValidationResult
    In this article
    © 2026 Serenity. All Rights Reserved