stylegallery 0.1.6 → 0.1.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +13 -1
- package/DOMAINS.md +10 -6
- package/GOVERNANCE.md +14 -12
- package/LICENSE +28 -0
- package/LICENSE-DOCS +42 -0
- package/NOTICE +38 -0
- package/README.md +47 -15
- package/consumer-reference/agent-native/README.md +7 -7
- package/consumer-reference/agent-native/v2/admission-policy.json +196 -31
- package/consumer-reference/agent-native/v2/material-registry.json +1 -1
- package/consumer-reference/agent-native/v2/schema/admission-policy.schema.json +3 -3
- package/consumer-reference/agent-native/v2/schema/material-record.schema.json +1 -1
- package/design-engineering/component-contract.md +19 -3
- package/design-engineering/decision-tree.md +1 -0
- package/design-engineering/index.md +48 -0
- package/design-engineering/loading-and-feedback.md +91 -0
- package/design-engineering/native-interaction-contracts.md +94 -0
- package/design-engineering/state-management/decision-tree.md +60 -0
- package/design-engineering/state-management/index.md +61 -0
- package/design-engineering/state-management/patterns/derived-state.md +85 -0
- package/design-engineering/state-management/patterns/draft-and-baseline.md +86 -0
- package/design-engineering/state-management/patterns/id-selection.md +85 -0
- package/design-engineering/state-management/patterns/identity-reset.md +89 -0
- package/design-engineering/state-management/patterns/latest-request-wins.md +94 -0
- package/design-engineering/state-management/patterns/optimistic-overlay.md +98 -0
- package/design-engineering/state-management/patterns/single-flight.md +92 -0
- package/design-engineering/state-management/patterns/single-owner.md +89 -0
- package/design-engineering/state-management/patterns/submitted-snapshot.md +107 -0
- package/design-engineering/state-management/patterns/unsaved-navigation.md +100 -0
- package/design-engineering/state-management/patterns/url-state.md +96 -0
- package/design-engineering/state-management/patterns/versioned-restore.md +95 -0
- package/design-engineering/state-management/recipes/delete-undo.md +65 -0
- package/design-engineering/state-management/recipes/index.md +64 -0
- package/design-engineering/state-management/recipes/multi-step-form.md +65 -0
- package/design-engineering/state-management/recipes/search-detail.md +65 -0
- package/design-engineering/state-management/recipes/settings-save.md +64 -0
- package/design-engineering/state-management/state-brief.md +83 -0
- package/design-engineering/state-management/verification.md +65 -0
- package/design-engineering/text-input-and-internationalization.md +91 -0
- package/design-engineering/worked-examples.md +2 -0
- package/design-terminology/conflict-cases.md +51 -8
- package/design-terminology/index.md +6 -0
- package/design-terminology/interaction-semantics.md +87 -0
- package/design-terminology/source-kinds.md +1 -1
- package/design-terminology/source-vocabularies.md +17 -1
- package/design-terminology/token-semantics.md +90 -0
- package/design-terminology/typography-semantics.md +86 -0
- package/expression/brand-studies.md +50 -0
- package/expression/direction-brief.md +71 -0
- package/expression/directions/nocturne-editorial.md +80 -0
- package/expression/directions/warm-print.md +73 -0
- package/expression/index.md +40 -0
- package/expression/techniques/gradient-atmosphere.md +107 -0
- package/expression/techniques/grain-and-texture.md +83 -0
- package/expression/techniques/webgl-hero.md +123 -0
- package/guides/vocabulary.md +1 -1
- package/index.md +3 -3
- package/log.md +64 -0
- package/motion/accessible-motion.md +90 -0
- package/motion/index.md +9 -0
- package/motion/interaction-recipes.md +8 -2
- package/motion/interruption-and-retargeting.md +90 -0
- package/motion/observed-choreography.md +73 -0
- package/motion/rendering-and-performance.md +89 -0
- package/motion/techniques/kinetic-type.md +145 -0
- package/motion/techniques/scroll-choreography.md +154 -0
- package/package.json +76 -21
- package/platform-guides/adaptive-navigation.md +85 -0
- package/platform-guides/compatibility-matrix.md +1 -1
- package/platform-guides/index.md +6 -0
- package/platform-guides/input-and-focus.md +91 -0
- package/platform-guides/preferences-and-accessibility.md +90 -0
- package/quality/claim-records/stylegallery-multidomain-scope.md +2 -2
- package/quality/evidence/executable-evidence.md +1 -1
- package/quality/index.md +1 -2
- package/scripts/agent-native/v2/material-admission.mjs +1 -1
- package/scripts/agent-native/v2/material-identity.mjs +2 -2
- package/scripts/compiler/README.md +112 -0
- package/scripts/compiler/cli.mjs +51 -0
- package/scripts/compiler/mcp.mjs +53 -0
- package/scripts/compiler/operations.mjs +70 -0
- package/scripts/compiler/runtime.mjs +156 -0
- package/scripts/sg-entry.mjs +20 -0
- package/scripts/sg-server.mjs +20 -0
- package/showcase/README.md +113 -0
- package/game-ui/classification.md +0 -82
- package/game-ui/decision-tree.md +0 -81
- package/game-ui/index.md +0 -45
- package/game-ui/reference-record.md +0 -62
- package/game-ui/screen-hierarchy.md +0 -107
- package/game-ui/screen-recipes.md +0 -101
- package/game-ui/unity/architecture.md +0 -166
- package/game-ui/unity/cli-loop.md +0 -84
- package/game-ui/unity/org-wiki.md +0 -146
- package/game-ui/unity/repository-map.md +0 -102
- package/game-ui/unity/ui-systems.md +0 -85
- package/game-ui/verification-workflow.md +0 -100
|
@@ -1,146 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
type: Domain Guide
|
|
3
|
-
title: Unity Organization Compressed Wiki
|
|
4
|
-
description: Independent cluster index over a tracked snapshot of 804 public Unity-Technologies repositories for bounded Game UI source discovery.
|
|
5
|
-
domain: game-ui
|
|
6
|
-
lifecycle: experimental
|
|
7
|
-
platform: Unity-Technologies public GitHub organization
|
|
8
|
-
platform_version: public repository snapshot captured 2026-07-14T12:59:16Z
|
|
9
|
-
reviewed_on: 2026-07-15
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
# Unity Organization Compressed Wiki
|
|
13
|
-
|
|
14
|
-
Primary role: bounded organization-wide source discovery for Unity Game UI research.
|
|
15
|
-
|
|
16
|
-
> **Independent research — not affiliated with or endorsed by Unity Technologies. Snapshot evidence, not a support-status catalog.**
|
|
17
|
-
|
|
18
|
-
This locally authored index compresses **804** public repositories into one tracked data inventory and 20 exclusive primary clusters. It is not produced, sponsored, endorsed, or maintained by Unity Technologies. Organization placement does not establish authorship of forked, mirrored, vendored, or third-party content. Each repository retains its own license and terms.
|
|
19
|
-
|
|
20
|
-
The machine-readable source is [`data/unity-technologies-public-repositories.json`](data/unity-technologies-public-repositories.json). It records one row per captured public repository, including stable identity, repository URL, raw fork/archive/template state, default branch and observed HEAD when resolved, snapshot time, license metadata, UI relevance, and one exclusive `primary_cluster`.
|
|
21
|
-
|
|
22
|
-
The source snapshot was captured at `2026-07-14T12:59:16Z`. The pre-projection inventory SHA-256 was `8291b471251053a8921651eb7c791d13a4794984b73670a51cdb1116deb49657`; the tracked JSON SHA-256 is `b1438e6e8d438bab3eff2ff02f5a10e9374fdfb89b0581ffb936a42920fa2e05`. It records 59 archived repositories, 356 forks, and 4 templates.
|
|
23
|
-
|
|
24
|
-
## Repository Boundary
|
|
25
|
-
|
|
26
|
-
The inventory covers the public Unity-Technologies organization snapshot and no other owner. NGUI and other third-party sources remain outside its counts. Public organization metadata is discovery evidence; it is not an affiliation, authorship, quality, or support claim.
|
|
27
|
-
|
|
28
|
-
## Reusable Method
|
|
29
|
-
|
|
30
|
-
1. Start with [Unity UI Systems](ui-systems.md) for a current system-choice decision.
|
|
31
|
-
2. Use the [Unity Repository Map](repository-map.md) to find UI authority, examples, adjacent evidence, and historical material.
|
|
32
|
-
3. Use this page when a UI question depends on a broader engine subject such as rendering, input, ECS, networking, XR, platform integration, services, or tooling.
|
|
33
|
-
4. Open the tracked inventory for individual repository URLs and captured metadata.
|
|
34
|
-
5. Before turning a repository observation into guidance, resolve and pin the exact Unity/package version and source revision.
|
|
35
|
-
|
|
36
|
-
The evidence order is: versioned Unity manuals and package changelogs; SHA-pinned implementation source; current version-bounded examples; dated announcements; historical demos; then community anecdotes. Stars, recent pushes, and organization placement are discovery signals, not authority or support status.
|
|
37
|
-
|
|
38
|
-
## Exclusive Cluster Index
|
|
39
|
-
|
|
40
|
-
First match wins. Fork and archive gates precede subjects; UI authority precedes adjacent technical subjects; technical subjects precede generic samples; the residual is an explicit covered value.
|
|
41
|
-
|
|
42
|
-
| Primary cluster | Repositories | Game UI use boundary |
|
|
43
|
-
| --- | ---: | --- |
|
|
44
|
-
| `meta-forks-mirrors` | 356 | Discovery only. GitHub `fork: true` does not establish first-party authority. |
|
|
45
|
-
| `meta-archived-historical` | 32 | Archaeology and migration context, not current guidance. |
|
|
46
|
-
| `game-ui-primary` | 9 | Explicit UI sources/examples; refine lifecycle and version before use. |
|
|
47
|
-
| `graphics-rendering` | 38 | Rendering constraints, shaders, pipelines, VFX, materials, and display behavior. |
|
|
48
|
-
| `ecs-dots` | 22 | Data-oriented runtime architecture that can constrain UI state flow. |
|
|
49
|
-
| `networking` | 21 | Multiplayer state, transport, lobby, relay, matchmaking, and server flows. |
|
|
50
|
-
| `xr-ar` | 25 | Spatial interaction, device input, world-space presentation, and XR constraints. |
|
|
51
|
-
| `ml-ai` | 23 | ML, inference, perception, and synthetic-data context; no UI defaults. |
|
|
52
|
-
| `robotics` | 6 | Simulation and operator-interface observations only. |
|
|
53
|
-
| `2d` | 7 | Sprite, tilemap, 2D package, and pixel-oriented implementation context. |
|
|
54
|
-
| `animation` | 10 | Timeline, rigging, Cinemachine, and animation-system dependencies. |
|
|
55
|
-
| `audio` | 3 | Audio/DSP and spatial-audio state dependencies. |
|
|
56
|
-
| `physics` | 1 | Physics-system context only. |
|
|
57
|
-
| `editor-tooling` | 29 | Authoring, profiling, build, package, recorder, and asset-tooling surfaces. |
|
|
58
|
-
| `ci-infra` | 2 | Build and test infrastructure; not product UI evidence. |
|
|
59
|
-
| `language-runtime` | 3 | Runtime, compilation, scripting, and serialization dependencies. |
|
|
60
|
-
| `services-cloud` | 3 | Authentication, economy, analytics, leaderboard, and remote-service states. |
|
|
61
|
-
| `platform-mobile` | 9 | Native integration, safe areas, packaging, device constraints, and platform input. |
|
|
62
|
-
| `samples-templates` | 30 | Observation-only examples without a stronger subject assignment. |
|
|
63
|
-
| `other-mixed-or-insufficient-metadata` | 175 | Covered residual; no speculative subject claim. |
|
|
64
|
-
| **Total** | **804** | Exactly one primary cluster per tracked row. |
|
|
65
|
-
|
|
66
|
-
`localization-text` remains a reserved search facet with zero primary rows in this snapshot. A zero primary count does not prove absence; use UI relevance and repository-specific inspection.
|
|
67
|
-
|
|
68
|
-
## UI Authority Route
|
|
69
|
-
|
|
70
|
-
The current source triangle is deliberately split:
|
|
71
|
-
|
|
72
|
-
- [`uGUI`](https://github.com/Unity-Technologies/uGUI) owns the GameObject/Canvas UI package source and current TextMesh Pro source. Use the package version in the target project and a matching SHA.
|
|
73
|
-
- [`UnityCsReference`](https://github.com/Unity-Technologies/UnityCsReference) contains the broad UI Toolkit reference implementation within engine C# reference source; it is not a package mirror.
|
|
74
|
-
- [`InputSystem`](https://github.com/Unity-Technologies/InputSystem) owns UI-input integration such as action maps and `InputSystemUIInputModule`, not rendering or layout.
|
|
75
|
-
|
|
76
|
-
Open UnityCsReference as a Unity-engine C# study and reference textbook surface when tracing module architecture, ownership boundaries, and version-pinned implementation paths. It is valuable for readers who already know C# and want to study how Unity's managed engine layer is organized; it is not a learn-C#-from-zero or general-purpose C# curriculum. Read a branch or SHA matched to the target Unity version line, and treat the repository as reference source rather than a package mirror or the complete engine: native/C++ implementation remains outside this corpus.
|
|
77
|
-
|
|
78
|
-
Current scoped examples include [`BagelGame`](https://github.com/Unity-Technologies/BagelGame), [`ui-toolkit-manual-code-examples`](https://github.com/Unity-Technologies/ui-toolkit-manual-code-examples), and [`a11y-public-sample`](https://github.com/Unity-Technologies/a11y-public-sample). Preserve each example's recorded Unity/package baseline.
|
|
79
|
-
|
|
80
|
-
Historical UIElements/UI Toolkit conference and runtime demos remain historical even if unarchived or recently pushed. [`com.unity.uiwidgets`](https://github.com/Unity-Technologies/com.unity.uiwidgets) is a separate archived framework, not UI Toolkit.
|
|
81
|
-
|
|
82
|
-
NGUI is third-party [`tasharen/ngui`](https://github.com/tasharen/ngui). It is outside the Unity-Technologies 804-repository inventory and appears only as a separately pinned migration comparison in [Unity UI Systems](ui-systems.md).
|
|
83
|
-
|
|
84
|
-
## Opinionated Guidance
|
|
85
|
-
|
|
86
|
-
- Use `game-ui-primary` only as a candidate route; open the repository-map lifecycle disposition before citing it.
|
|
87
|
-
- Prefer a matching release or Unity-version SHA over a mutable default-branch HEAD for implementation claims.
|
|
88
|
-
- Keep engine-subject clusters as dependency context. They do not supply visual defaults or universal Game UI rules.
|
|
89
|
-
- Treat stars, recent pushes, and repository names as discovery signals only.
|
|
90
|
-
|
|
91
|
-
## Platform-Specific Guidance
|
|
92
|
-
|
|
93
|
-
- Match uGUI and UnityCsReference source to the target Unity editor/package line.
|
|
94
|
-
- Match Input System evidence to the project's installed package version and UI module configuration.
|
|
95
|
-
- Revalidate XR, mobile, safe-area, HDR, and native-integration examples on the target device and render pipeline.
|
|
96
|
-
- Preserve each sample's recorded Unity version even when its repository is unarchived or recently pushed.
|
|
97
|
-
|
|
98
|
-
## Residual And Provenance Policy
|
|
99
|
-
|
|
100
|
-
The 175-row residual means the bounded metadata classifier selected no earlier cluster. It does not mean irrelevant, empty, undocumented, or free of UI evidence. Curated overrides must be versioned and must recompute the full partition; do not edit cluster counts by hand.
|
|
101
|
-
|
|
102
|
-
Raw `fork`, `archived`, and `is_template` values remain in the inventory. GitHub's fork flag is not a complete authorship model: non-fork repositories can still describe themselves as mirrors, forks, or vendored sources. Treat provenance as unresolved until repository evidence establishes it.
|
|
103
|
-
|
|
104
|
-
## Completeness And Refresh Limits
|
|
105
|
-
|
|
106
|
-
- The snapshot excludes private, deleted, transferred, and non-default-branch-only material.
|
|
107
|
-
- Five stored tree scans were truncated and two zero-size repositories returned tree-fetch errors; absence claims do not rely on those trees.
|
|
108
|
-
- Some repository HEADs, versions, licenses, lifecycle statements, and replacement paths remain unresolved.
|
|
109
|
-
- X/Twitter evidence was unavailable during the research session. No post, handle, date, URL, or quotation is inferred from that absence.
|
|
110
|
-
- The taxonomy is metadata-first. The residual protects against false precision; it is not editorial completion for 175 individual repositories.
|
|
111
|
-
|
|
112
|
-
Refresh by rebuilding the complete public inventory, preserving stable identities and raw lifecycle fields, rerunning the exclusive classifier, validating all 804 assignments, reviewing changed authority records, and updating the snapshot identity. Never hand-edit one count without recomputing the whole partition.
|
|
113
|
-
|
|
114
|
-
## Unsupported Absolutes
|
|
115
|
-
|
|
116
|
-
- “In the Unity-Technologies organization” does not mean Unity authored every file.
|
|
117
|
-
- “Unarchived” or “recently pushed” does not mean current or supported.
|
|
118
|
-
- “No UI signal” does not prove a repository contains no interface code.
|
|
119
|
-
- The 175-row residual does not mean the repositories are irrelevant or unclassifiable with deeper evidence.
|
|
120
|
-
- This snapshot does not establish the contents of private, deleted, transferred, or non-default branches.
|
|
121
|
-
|
|
122
|
-
## Verification Contract
|
|
123
|
-
|
|
124
|
-
Run `node scripts/validate-unity-org-wiki.mjs --json` and `node scripts/test-validate-unity-org-wiki.mjs`. A refreshed publication must retain 804 unique identities for this snapshot, preserve the exclusive cluster sum, keep NGUI external, and update the page, data, snapshot identity, and tests together.
|
|
125
|
-
|
|
126
|
-
## Source, License, And Attribution
|
|
127
|
-
|
|
128
|
-
- Inventory basis: public GitHub repository metadata and captured default-branch inspection at `2026-07-14T12:59:16Z`.
|
|
129
|
-
- Inventory identity before tracked projection: SHA-256 `8291b471251053a8921651eb7c791d13a4794984b73670a51cdb1116deb49657`; tracked JSON SHA-256 `b1438e6e8d438bab3eff2ff02f5a10e9374fdfb89b0581ffb936a42920fa2e05`; 59 archived repositories, 356 forks, and 4 templates.
|
|
130
|
-
- Repository licenses and reuse terms differ. Follow each repository's recorded and current license before copying code or assets.
|
|
131
|
-
- Reuse form: locally authored taxonomy, discovery index, and metadata projection; no Unity logos, trade dress, or first-person organizational voice.
|
|
132
|
-
|
|
133
|
-
## Review Trigger
|
|
134
|
-
|
|
135
|
-
Revisit this experimental page when the public snapshot is refreshed, a current UI authority source changes ownership or lifecycle, high-value unresolved HEAD/version fields are pinned, curated residual overrides are accepted, or verified social evidence materially changes the source-ranking discussion.
|
|
136
|
-
|
|
137
|
-
Implementation handoff: Unity public-repository inventory and compressed discovery index.
|
|
138
|
-
|
|
139
|
-
Consumer reference: `not_applicable`
|
|
140
|
-
|
|
141
|
-
Consumer reference reason: This implementation adds repository provenance and discovery evidence, not consumer-specific visual or component guidance.
|
|
142
|
-
|
|
143
|
-
## IA Navigation
|
|
144
|
-
|
|
145
|
-
Parent: [Game UI](../index.md).
|
|
146
|
-
Next: [Platform Guides](../../platform-guides/index.md).
|
|
@@ -1,102 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
type: Domain Guide
|
|
3
|
-
title: Unity Repository Map
|
|
4
|
-
description: Public default-branch snapshot map for locating Unity UI system sources, examples, adjacent references, and historical material.
|
|
5
|
-
domain: game-ui
|
|
6
|
-
lifecycle: experimental
|
|
7
|
-
platform: Unity-Technologies public GitHub organization
|
|
8
|
-
platform_version: public and default-branch snapshot captured 2026-07-14T12:59:16Z
|
|
9
|
-
reviewed_on: 2026-07-14
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
# Unity Repository Map
|
|
13
|
-
|
|
14
|
-
Primary role: Unity public-source discovery and authority map.
|
|
15
|
-
|
|
16
|
-
## Repository Boundary
|
|
17
|
-
|
|
18
|
-
This locally authored map classifies the Unity-Technologies public organization snapshot captured at `2026-07-14T12:59:16Z`. GitHub organization metadata and fully paginated public-repository enumeration both returned 804 repositories. The pre-projection capture had SHA-256 `8291b471251053a8921651eb7c791d13a4794984b73670a51cdb1116deb49657`; the tracked classified [`data/unity-technologies-public-repositories.json`](data/unity-technologies-public-repositories.json) has SHA-256 `b1438e6e8d438bab3eff2ff02f5a10e9374fdfb89b0581ffb936a42920fa2e05` and records 59 archived repositories, 356 forks, and 4 templates.
|
|
19
|
-
|
|
20
|
-
The map is a discovery index. A repository's presence, name, archive flag, or push date does not make it a current UI-system source.
|
|
21
|
-
|
|
22
|
-
## Reusable Method
|
|
23
|
-
|
|
24
|
-
1. Enumerate every public repository through REST pagination and retain stable repository identity and snapshot time.
|
|
25
|
-
2. Record archive, fork, template, default branch, default-branch HEAD, README location, and tree-scan status.
|
|
26
|
-
3. Scan default-branch paths for UXML, USS, UI Toolkit/UIElements, uGUI/Canvas/EventSystem, IMGUI, HUD/menu, accessibility, localization, text, and input signals.
|
|
27
|
-
4. Counter-search descriptions and code paths so name-hidden candidates remain discoverable.
|
|
28
|
-
5. Assign every repository one relevance class and a disposition reason.
|
|
29
|
-
6. Deep-read only the authority subset, then pin each guidance claim to an exact revision and lifecycle context.
|
|
30
|
-
|
|
31
|
-
## Snapshot Classification
|
|
32
|
-
|
|
33
|
-
| UI relevance class | Repositories | Use |
|
|
34
|
-
| --- | ---: | --- |
|
|
35
|
-
| `primary-ui-source` | 8 | Unity UI system or explicit UI/example repository; refine lifecycle before use. |
|
|
36
|
-
| `ui-adjacent-reference` | 5 | Input, reference source, safe-area, calibration, or vector-graphics evidence that constrains a UI review. |
|
|
37
|
-
| `runtime-ui-observation` | 23 | Runtime UXML/USS or game/product UI implementation whose repository purpose is broader than UI. |
|
|
38
|
-
| `legacy-ui-observation` | 72 | Multiple uGUI, HUD, menu, or Canvas observations in repositories owned for another purpose. |
|
|
39
|
-
| `editor-or-incidental-uitoolkit` | 21 | UI Toolkit appears in editor tooling, inspectors, tests, or incidental help surfaces. |
|
|
40
|
-
| `code-only-or-incidental-ui-signal` | 93 | Sparse or ambiguous UI-like paths do not justify reference status. |
|
|
41
|
-
| `historical-ui-source` | 1 | Archived UIWidgets source retained as a separate historical framework. |
|
|
42
|
-
| `excluded-misleading-name` | 1 | A UI-like repository name does not match a general UI source after inspection. |
|
|
43
|
-
| `excluded-fork-or-vendor-ui` | 90 | Forked, mirrored, or vendored UI content is not automatically Unity-authored evidence. |
|
|
44
|
-
| `no-ui-signal` | 490 | No UI signal was located in metadata, topics, default-branch path scan, or counter-search. |
|
|
45
|
-
|
|
46
|
-
Total: 804 repositories.
|
|
47
|
-
|
|
48
|
-
## Authority And Lifecycle Disposition
|
|
49
|
-
|
|
50
|
-
| Disposition | Pinned examples | How to use them |
|
|
51
|
-
| --- | --- | --- |
|
|
52
|
-
| Current primary system/reference | uGUI's Unity 6000.3 [`Graphic.cs`](https://github.com/Unity-Technologies/uGUI/blob/9edb4420267b6652090ece4c28c38bd98746a68e/com.unity.ugui/Runtime/UGUI/UI/Core/Graphic.cs), UnityCsReference 6000.3.19f1 [`Panel.cs`](https://github.com/Unity-Technologies/UnityCsReference/blob/79f16640303119112ca5caed4d71c607d0dff6fb/Modules/UIElements/Core/Panel.cs), and InputSystem [`InputSystemUIInputModule.cs`](https://github.com/Unity-Technologies/InputSystem/blob/8a57d62081cf3546b46444e17223e0121a3568b2/Packages/com.unity.inputsystem/InputSystem/Runtime/Plugins/UI/InputSystemUIInputModule.cs) | Use version-pinned component and integration architecture. UnityCsReference remains reference source rather than a package mirror. |
|
|
53
|
-
| Current explicit examples | [BagelGame README](https://github.com/Unity-Technologies/BagelGame/blob/5d0348bfa013f3c76299dd582c90a7549f66abce/README.md), [UI Toolkit manual code examples README](https://github.com/Unity-Technologies/ui-toolkit-manual-code-examples/blob/7ed6e7af9fc8a8f83facea818f47928d2e03a30f/README.md), and [accessibility sample README](https://github.com/Unity-Technologies/a11y-public-sample/blob/ec14cfcb8c10bafab83ea02cd17759d77b225fae/README.md) | BagelGame is a Unity 6.3 full-game UI Toolkit example; the manual repository contains documentation snippets; the accessibility sample is a Unity 2023.3 uGUI example. Keep each example's version and purpose attached. |
|
|
54
|
-
| Adjacent and current observation examples | [EntityComponentSystemSamples README](https://github.com/Unity-Technologies/EntityComponentSystemSamples/blob/6786a741ee1f118ed14cecfa02beae8e926937b0/README.md), [XR Interaction Toolkit Examples README](https://github.com/Unity-Technologies/XR-Interaction-Toolkit-Examples/blob/881f7e197c7b0958621ebd1a05f249bbe254d36f/README.md), and [Unity Industry Viewer Template README](https://github.com/Unity-Technologies/unity-industry-viewer-template/blob/5d50da18f68b14c4dc15bcf3d535878cc2254497/README.md) | Use as implementation observations for their own product, ECS, XR, or industry-template context. They do not own the general UI-system contract. |
|
|
55
|
-
| Historical UI examples | [UIElementsExamples README](https://github.com/Unity-Technologies/UIElementsExamples/blob/e940d1c9dddfe99fd500c9f34f4801856ad37f18/README.md), [Unite Copenhagen 2019 demo README](https://github.com/Unity-Technologies/UIElementsUniteCPH2019RuntimeDemo/blob/fa4f2c70cf2d6127ab624cc11a2742260ca6ff20/README.md), [Unite LA turret demo README](https://github.com/Unity-Technologies/UIElementsUniteLATurretDemo/blob/1fce133fe3a3473d418066d8005c64340e9985d5/README.md), and [Unity Royale runtime demo README](https://github.com/Unity-Technologies/UIToolkitUnityRoyaleRuntimeDemo/blob/9b5006d2580101b4d08d59d03d7dadc697d75311/README.md) | Retain for UIElements/UI Toolkit technique lineage and their recorded Unity-era context. Unarchived status or a recent push does not revise their baseline. |
|
|
56
|
-
| Separate or excluded | Archived [UIWidgets README](https://github.com/Unity-Technologies/com.unity.uiwidgets/blob/0310984e947881eca6c2657f1a2fcaaa19329c22/README.md), [SimpleUIDemo README](https://github.com/Unity-Technologies/SimpleUIDemo/blob/c33907f1ffa0f8a30b46f958d3cf45e5da08b01c/README.md), and the 90 `excluded-fork-or-vendor-ui` rows | UIWidgets is a separate archived framework whose README points development elsewhere. SimpleUIDemo is a Project Tiny sample rather than a general UI reference. Fork and vendor content requires an independent provenance decision. |
|
|
57
|
-
|
|
58
|
-
## Completeness Limits
|
|
59
|
-
|
|
60
|
-
- The snapshot covers the public organization and each repository's observable default branch at capture time. It cannot observe private, deleted, transferred, or non-default-branch-only material.
|
|
61
|
-
- `gen-playerid-stats` and `repotest123` returned tree-fetch errors; both reported repository size zero, leaving no default-branch content to inspect.
|
|
62
|
-
- Recursive trees were truncated for Graphics, google-dawn, llvm-project, mono, and runtime. No absence claim relies on those truncated trees.
|
|
63
|
-
- Broad GitHub Code Search has rate and result ceilings. It was used to counter-check candidates, not as the enumeration mechanism.
|
|
64
|
-
- Path and metadata signals identify candidates; they do not prove compilation, rendered behavior, lifecycle correctness, or current support.
|
|
65
|
-
|
|
66
|
-
## Opinionated Guidance
|
|
67
|
-
|
|
68
|
-
- Start UI architecture research with the current primary sources, then use explicit examples for concrete version-scoped implementation evidence.
|
|
69
|
-
- Keep product samples, historical demos, separate frameworks, forks, mirrors, and incidental UI in distinct evidence lanes.
|
|
70
|
-
- Record repository owner, fork state, archive state, default-branch HEAD, README lifecycle statement, Unity/package version, authority class, and replacement path when one is named.
|
|
71
|
-
- Rebuild the inventory instead of editing counts by hand when the organization snapshot changes.
|
|
72
|
-
|
|
73
|
-
## Platform-Specific Guidance
|
|
74
|
-
|
|
75
|
-
- Use the Unity 6000.3 branch and package context when applying the uGUI source linked here.
|
|
76
|
-
- Use the UnityCsReference 6000.3.19f1 SHA for this page's UI Toolkit architecture boundary, not the newer default-branch head captured by the inventory.
|
|
77
|
-
- Use InputSystem only for the input and UI integration behavior visible at its pinned SHA.
|
|
78
|
-
- Preserve each sample's recorded Unity version and purpose in any downstream Game UI reference record.
|
|
79
|
-
|
|
80
|
-
## Unsupported Absolutes
|
|
81
|
-
|
|
82
|
-
- An unarchived repository is not proof of current guidance.
|
|
83
|
-
- A recent `pushed_at` value is not proof that a sample's Unity baseline changed.
|
|
84
|
-
- Repository ownership does not prove that every vendored or forked file is Unity-authored.
|
|
85
|
-
- A matching path or term does not prove that the repository is a UI-system source.
|
|
86
|
-
- This snapshot does not establish private or deleted repository history.
|
|
87
|
-
|
|
88
|
-
## Verification Contract
|
|
89
|
-
|
|
90
|
-
Before citing a repository, resolve the exact default-branch or release SHA, read its lifecycle statement and version files, inspect the relevant source path, and assign one of the dispositions above. For a refreshed map, repeat public pagination, verify unique ids and full names, recompute archive/fork/template totals and all ten class totals, record tree exceptions, and publish the new inventory hash and capture timestamp together.
|
|
91
|
-
|
|
92
|
-
## Source, License, And Attribution
|
|
93
|
-
|
|
94
|
-
- Inventory basis: public GitHub organization metadata, fully paginated public repository metadata, default-branch tree scans, and targeted counter-search captured on `2026-07-14T12:59:16Z`.
|
|
95
|
-
- Inventory identity: 804 classified rows; pre-projection SHA-256 `8291b471251053a8921651eb7c791d13a4794984b73670a51cdb1116deb49657`; tracked JSON SHA-256 `b1438e6e8d438bab3eff2ff02f5a10e9374fdfb89b0581ffb936a42920fa2e05`; 59 archived repositories, 356 forks, and 4 templates.
|
|
96
|
-
- Repository licenses and reuse terms differ. Follow the pinned repository's own license before copying code or assets.
|
|
97
|
-
- Reuse form: locally authored discovery and authority map; repository metadata and links are evidence references, not imported implementation guidance.
|
|
98
|
-
|
|
99
|
-
## IA Navigation
|
|
100
|
-
|
|
101
|
-
Parent: [Game UI](../index.md).
|
|
102
|
-
Next: [Unity Organization Compressed Wiki](org-wiki.md).
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
type: Domain Guide
|
|
3
|
-
title: Unity UI Systems
|
|
4
|
-
description: Source-pinned comparison of uGUI, UI Toolkit, and NGUI ownership and responsibilities for Game UI review.
|
|
5
|
-
domain: game-ui
|
|
6
|
-
lifecycle: experimental
|
|
7
|
-
platform: Unity uGUI, UI Toolkit, and NGUI
|
|
8
|
-
platform_version: Unity 6000.3 source boundary for uGUI and UI Toolkit; NGUI pinned repository snapshot
|
|
9
|
-
reviewed_on: 2026-07-14
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
# Unity UI Systems
|
|
13
|
-
|
|
14
|
-
Primary role: Unity UI stack comparison guide.
|
|
15
|
-
|
|
16
|
-
## Repository Boundary
|
|
17
|
-
|
|
18
|
-
This locally authored comparison helps a Game UI reviewer identify which hierarchy, input, layout, and lifecycle evidence belongs to uGUI, UI Toolkit, or NGUI. It compares ownership and responsibilities at pinned sources; it does not prescribe one stack, treat the APIs as interchangeable, or project historical examples onto current Unity releases.
|
|
19
|
-
|
|
20
|
-
## Version Boundary
|
|
21
|
-
|
|
22
|
-
- uGUI observations use the Unity 6000.3 branch at `9edb4420267b6652090ece4c28c38bd98746a68e`.
|
|
23
|
-
- UI Toolkit observations use UnityCsReference `6000.3.19f1` at `79f16640303119112ca5caed4d71c607d0dff6fb`. UnityCsReference is reference source, not a package mirror.
|
|
24
|
-
- NGUI observations use `tasharen/ngui@9bbc56f11e0e25b89fd55b9b9bc67ddf1f182fe2`. The repository describes a third-party system originating in 2011; treat this pinned snapshot separately from Unity-owned stacks and older NGUI distributions.
|
|
25
|
-
|
|
26
|
-
## Reusable Method
|
|
27
|
-
|
|
28
|
-
1. Record the Unity, package, and repository revisions used by the project.
|
|
29
|
-
2. Identify the tree owner: Canvas and GameObjects, Panel and VisualElements, or UIRoot/UIPanel and GameObjects.
|
|
30
|
-
3. Trace input and focus through the active stack-specific route.
|
|
31
|
-
4. Inspect layout, styling, motion, binding, and scrolling as separate responsibilities.
|
|
32
|
-
5. Record serialized assets, runtime-created state, and editor-only tooling.
|
|
33
|
-
6. Label every example as current system source, current example, adjacent observation, or historical material.
|
|
34
|
-
|
|
35
|
-
## System Comparison
|
|
36
|
-
|
|
37
|
-
| Axis | uGUI at the pinned Unity 6000.3 source | UI Toolkit at the pinned Unity 6000.3 reference source | NGUI at the pinned repository snapshot |
|
|
38
|
-
| --- | --- | --- | --- |
|
|
39
|
-
| Rendering | A `Graphic` registers with a Canvas, rebuilds geometry or material state, and sends mesh data through the Canvas rendering path. See [`Graphic.cs`](https://github.com/Unity-Technologies/uGUI/blob/9edb4420267b6652090ece4c28c38bd98746a68e/com.unity.ugui/Runtime/UGUI/UI/Core/Graphic.cs#L547-L716). | A Panel owns a VisualElement tree, while repaint processing consumes visual changes and renders the root tree. See [`Panel.cs`](https://github.com/Unity-Technologies/UnityCsReference/blob/79f16640303119112ca5caed4d71c607d0dff6fb/Modules/UIElements/Core/Panel.cs#L1238-L1259) and [`UIRRepaintUpdater.cs`](https://github.com/Unity-Technologies/UnityCsReference/blob/79f16640303119112ca5caed4d71c607d0dff6fb/Modules/UIElements/Core/Renderer/UIRRepaintUpdater.cs#L25-L148). | `UIRoot`, `UIPanel`, `UIWidget`, and `UIDrawCall` divide scaling, clipping, geometry, and draw-call work. See [`UIRoot.cs`](https://github.com/tasharen/ngui/blob/9bbc56f11e0e25b89fd55b9b9bc67ddf1f182fe2/Assets/NGUI/Scripts/UI/UIRoot.cs), [`UIPanel.cs`](https://github.com/tasharen/ngui/blob/9bbc56f11e0e25b89fd55b9b9bc67ddf1f182fe2/Assets/NGUI/Scripts/UI/UIPanel.cs), and [`UIDrawCall.cs`](https://github.com/tasharen/ngui/blob/9bbc56f11e0e25b89fd55b9b9bc67ddf1f182fe2/Assets/NGUI/Scripts/Internal/UIDrawCall.cs). |
|
|
40
|
-
| Hierarchy and ownership | GameObjects, `RectTransform`, Canvas, and component registration form the inspected hierarchy. Canvas membership is runtime state, not merely folder or prefab placement. | A `UIDocument` attaches a `VisualTreeAsset`-derived VisualElement tree to Panel Settings. VisualElement descendants are not Transform children. See [`UIDocument.cs`](https://github.com/Unity-Technologies/UnityCsReference/blob/79f16640303119112ca5caed4d71c607d0dff6fb/Modules/UIElements/Core/GameObjects/UIDocument.cs#L509-L539). | The Unity GameObject hierarchy carries `UIRoot`, `UIPanel`, `UIWidget`, control components, atlases, and fonts. Inspect component ownership as well as Transform nesting. See [`UIWidget.cs`](https://github.com/tasharen/ngui/blob/9bbc56f11e0e25b89fd55b9b9bc67ddf1f182fe2/Assets/NGUI/Scripts/Internal/UIWidget.cs). |
|
|
41
|
-
| Input and focus | `EventSystem` selects and runs an active `BaseInputModule`; New Input System projects can use `InputSystemUIInputModule`. See [`EventSystem.cs`](https://github.com/Unity-Technologies/uGUI/blob/9edb4420267b6652090ece4c28c38bd98746a68e/com.unity.ugui/Runtime/UGUI/EventSystem/EventSystem.cs#L158-L177) and [`InputSystemUIInputModule.cs`](https://github.com/Unity-Technologies/InputSystem/blob/8a57d62081cf3546b46444e17223e0121a3568b2/Packages/com.unity.inputsystem/InputSystem/Runtime/Plugins/UI/InputSystemUIInputModule.cs). | Focus and event dispatch are Panel-owned. The pinned `DefaultEventSystem` chooses the InputForUI provider path or a legacy path according to its context. See [`DefaultEventSystem.cs`](https://github.com/Unity-Technologies/UnityCsReference/blob/79f16640303119112ca5caed4d71c607d0dff6fb/Modules/UIElements/Core/GameObjects/DefaultEventSystem.cs#L67-L82). | `UICamera` performs its own 3D/2D raycasts and message dispatch. Its default delegates read legacy `UnityEngine.Input`; do not document an EventSystem or New Input System route unless the project supplies one. See [`UICamera.cs`](https://github.com/tasharen/ngui/blob/9bbc56f11e0e25b89fd55b9b9bc67ddf1f182fe2/Assets/NGUI/Scripts/UI/UICamera.cs#L13-L43). |
|
|
42
|
-
| Layout | `LayoutRebuilder`, layout groups, fitters, anchors, and RectTransform calculations operate across component passes. See [`LayoutRebuilder.cs`](https://github.com/Unity-Technologies/uGUI/blob/9edb4420267b6652090ece4c28c38bd98746a68e/com.unity.ugui/Runtime/UGUI/UI/Core/Layout/LayoutRebuilder.cs#L60-L89). | Flex-style layout nodes are calculated for the visual tree, with bounded validation passes. See [`VisualTreeLayoutUpdater.cs`](https://github.com/Unity-Technologies/UnityCsReference/blob/79f16640303119112ca5caed4d71c607d0dff6fb/Modules/UIElements/Core/VisualTreeLayoutUpdater.cs#L105-L201). | Anchoring, stretching, grid, table, and wrapping responsibilities are separate components. See [`UIAnchor.cs`](https://github.com/tasharen/ngui/blob/9bbc56f11e0e25b89fd55b9b9bc67ddf1f182fe2/Assets/NGUI/Scripts/UI/UIAnchor.cs), [`UIStretch.cs`](https://github.com/tasharen/ngui/blob/9bbc56f11e0e25b89fd55b9b9bc67ddf1f182fe2/Assets/NGUI/Scripts/UI/UIStretch.cs), [`UIGrid.cs`](https://github.com/tasharen/ngui/blob/9bbc56f11e0e25b89fd55b9b9bc67ddf1f182fe2/Assets/NGUI/Scripts/Interaction/UIGrid.cs), and [`UITable.cs`](https://github.com/tasharen/ngui/blob/9bbc56f11e0e25b89fd55b9b9bc67ddf1f182fe2/Assets/NGUI/Scripts/Interaction/UITable.cs). |
|
|
43
|
-
| Styling and motion | `Selectable` supports color, sprite, and Animator transition modes; projects may add Animator, Timeline, tween, or script-owned motion. See [`Selectable.cs`](https://github.com/Unity-Technologies/uGUI/blob/9edb4420267b6652090ece4c28c38bd98746a68e/com.unity.ugui/Runtime/UGUI/UI/Core/Selectable.cs#L655-L708). | USS style resolution and typed transition-property changes are processed by the style updater. See [`VisualTreeStyleUpdater.cs`](https://github.com/Unity-Technologies/UnityCsReference/blob/79f16640303119112ca5caed4d71c607d0dff6fb/Modules/UIElements/Core/VisualTreeStyleUpdater.cs#L68-L170). | Widget colors, sprites, fonts, `UITweener` subclasses, springs, `UIPlayTween`, and `UIPlayAnimation` provide stack-local presentation and motion mechanisms. See [`UITweener.cs`](https://github.com/tasharen/ngui/blob/9bbc56f11e0e25b89fd55b9b9bc67ddf1f182fe2/Assets/NGUI/Scripts/Tweening/UITweener.cs#L10-L38). |
|
|
44
|
-
| Binding | Serialized component references, scripts, `UnityEvent`, and project-owned presenters connect UI components to project code. The pinned runtime source exposes `Button.onClick`, but this review did not locate a general collection/data-binding family. See [`Button.cs`](https://github.com/Unity-Technologies/uGUI/blob/9edb4420267b6652090ece4c28c38bd98746a68e/com.unity.ugui/Runtime/UGUI/UI/Core/Button.cs#L15-L70). | `dataSource`, `dataSourcePath`, `SetBinding`, and Panel binding management form an explicit data-binding surface. See [`VisualElementDataBinding.cs`](https://github.com/Unity-Technologies/UnityCsReference/blob/79f16640303119112ca5caed4d71c607d0dff6fb/Modules/UIElements/Core/VisualElementDataBinding.cs#L185-L290). | `EventDelegate`, localization, `PropertyBinding`, and project scripts support callbacks, localization, and property synchronization. Record the concrete component and callback path. See [`EventDelegate.cs`](https://github.com/tasharen/ngui/blob/9bbc56f11e0e25b89fd55b9b9bc67ddf1f182fe2/Assets/NGUI/Scripts/Internal/EventDelegate.cs). |
|
|
45
|
-
| Scrolling and virtualization | `ScrollRect` owns wheel, drag, bounds, velocity, and anchored-position behavior. The pinned runtime review did not locate a built-in collection-virtualization family. See [`ScrollRect.cs`](https://github.com/Unity-Technologies/uGUI/blob/9edb4420267b6652090ece4c28c38bd98746a68e/com.unity.ugui/Runtime/UGUI/UI/Core/ScrollRect.cs#L647-L680). | `ScrollView` provides scrolling, while collection controls own virtualization controllers. See [`BaseVerticalCollectionView.cs`](https://github.com/Unity-Technologies/UnityCsReference/blob/79f16640303119112ca5caed4d71c607d0dff6fb/Modules/UIElements/Core/Controls/BaseVerticalCollectionView.cs#L560-L574). | `UIScrollView`, scroll bars, `UIWrapContent`, and centering components divide scrolling and repeated-content behavior. See [`UIScrollView.cs`](https://github.com/tasharen/ngui/blob/9bbc56f11e0e25b89fd55b9b9bc67ddf1f182fe2/Assets/NGUI/Scripts/Interaction/UIScrollView.cs) and [`UIWrapContent.cs`](https://github.com/tasharen/ngui/blob/9bbc56f11e0e25b89fd55b9b9bc67ddf1f182fe2/Assets/NGUI/Scripts/Interaction/UIWrapContent.cs). |
|
|
46
|
-
| Lifecycle and serialization | MonoBehaviour callbacks register and unregister Graphics and layout state; scenes and prefabs serialize component fields and events. Inspect runtime-created objects and domain reload behavior separately. | `UIDocument`, Panel Settings, UXML/`VisualTreeAsset`, USS, and runtime Panel attachment create a distinct serialized-asset and runtime-tree lifecycle. | MonoBehaviours, prefabs, atlases, fonts, and serialized delegates carry state. Inspect runtime-created widgets, atlas/font ownership, and callback teardown directly. |
|
|
47
|
-
| Editor and runtime | Runtime and Editor assemblies are separate; editor menu code can create Canvas controls. See [`MenuOptions.cs`](https://github.com/Unity-Technologies/uGUI/blob/9edb4420267b6652090ece4c28c38bd98746a68e/com.unity.ugui/Editor/UGUI/UI/MenuOptions.cs#L205-L282). | Runtime Panels and editor-root contexts are separate. See [`RuntimePanel.cs`](https://github.com/Unity-Technologies/UnityCsReference/blob/79f16640303119112ca5caed4d71c607d0dff6fb/Modules/UIElements/Core/GameObjects/RuntimePanel.cs#L27-L48). | Runtime scripts, editor tools, and inspectors coexist. See [`UICreateNewUIWizard.cs`](https://github.com/tasharen/ngui/blob/9bbc56f11e0e25b89fd55b9b9bc67ddf1f182fe2/Assets/NGUI/Scripts/Editor/UICreateNewUIWizard.cs) and [`UIPanelInspector.cs`](https://github.com/tasharen/ngui/blob/9bbc56f11e0e25b89fd55b9b9bc67ddf1f182fe2/Assets/NGUI/Scripts/Editor/UIPanelInspector.cs). |
|
|
48
|
-
| Current and historical boundary | The pinned 6000.3 branch is the evidence boundary for this page; record the project's exact package revision before applying it. | The pinned 6000.3 reference source is the evidence boundary. UIElements conference demos and 2019–2020 runtime samples are historical technique records, not current-version contracts. | NGUI is third-party. Record the exact repository or asset-distribution revision and license context instead of using the name alone as a version marker. |
|
|
49
|
-
|
|
50
|
-
## Opinionated Guidance
|
|
51
|
-
|
|
52
|
-
- Start a review by naming the tree owner and input owner; those two facts reduce cross-stack ambiguity.
|
|
53
|
-
- Capture both serialized assets and the runtime tree because project folders or Scene hierarchy alone can omit runtime ownership.
|
|
54
|
-
- Treat mixed-stack projects as explicit integrations. Record render order, camera or Panel ownership, input routing, focus transfer, and teardown at each bridge.
|
|
55
|
-
- Prefer version-pinned system source for architecture claims and use samples only for the narrower behavior they actually demonstrate.
|
|
56
|
-
|
|
57
|
-
## Platform-Specific Guidance
|
|
58
|
-
|
|
59
|
-
- For uGUI, record Canvas mode, scaler, sorting, raycaster, EventSystem, input module, selected object, and ScrollRect structure.
|
|
60
|
-
- For UI Toolkit, record Panel Settings, UIDocument, UXML and USS assets, runtime `rootVisualElement`, focus order, data source, and collection controller.
|
|
61
|
-
- For NGUI, record UIRoot scaling, UIPanel clipping and depth, atlas/font assets, UICamera event type and delegates, tweener ownership, and scroll components.
|
|
62
|
-
- For every stack, distinguish editor-only tooling from runtime code and current sources from historical examples.
|
|
63
|
-
|
|
64
|
-
## Unsupported Absolutes
|
|
65
|
-
|
|
66
|
-
- Do not infer input routing from visual similarity or a shared GameObject parent.
|
|
67
|
-
- Do not infer a VisualElement tree from the Transform hierarchy.
|
|
68
|
-
- Do not infer current behavior from an unarchived repository or a recent push date alone.
|
|
69
|
-
- Do not infer rendered behavior, focus behavior, or lifecycle correctness from serialized files alone.
|
|
70
|
-
|
|
71
|
-
## Verification Contract
|
|
72
|
-
|
|
73
|
-
Record exact revisions, open the relevant Scene or document, and capture the serialized owner, runtime tree, active input path, initial and returned focus, layout changes, scrolling behavior, dynamic content reuse, and teardown. Exercise pointer, keyboard, gamepad, or touch modes actually declared by the project. Recheck historical examples against their own Unity version instead of using them as a current baseline.
|
|
74
|
-
|
|
75
|
-
## Source, License, And Attribution
|
|
76
|
-
|
|
77
|
-
- uGUI source: [Unity-Technologies/uGUI at `9edb4420267b6652090ece4c28c38bd98746a68e`](https://github.com/Unity-Technologies/uGUI/blob/9edb4420267b6652090ece4c28c38bd98746a68e/com.unity.ugui/LICENSE.md)
|
|
78
|
-
- UI Toolkit reference source: [Unity-Technologies/UnityCsReference at `79f16640303119112ca5caed4d71c607d0dff6fb`](https://github.com/Unity-Technologies/UnityCsReference/blob/79f16640303119112ca5caed4d71c607d0dff6fb/LICENSE.md)
|
|
79
|
-
- NGUI source: [tasharen/ngui at `9bbc56f11e0e25b89fd55b9b9bc67ddf1f182fe2`](https://github.com/tasharen/ngui/blob/9bbc56f11e0e25b89fd55b9b9bc67ddf1f182fe2/README.md) and its pinned [license](https://github.com/tasharen/ngui/blob/9bbc56f11e0e25b89fd55b9b9bc67ddf1f182fe2/License.txt)
|
|
80
|
-
- Reuse form: locally authored comparison of source-observable ownership and responsibilities; no upstream prose or implementation sample is reproduced.
|
|
81
|
-
|
|
82
|
-
## IA Navigation
|
|
83
|
-
|
|
84
|
-
Parent: [Game UI](../index.md).
|
|
85
|
-
Next: [Unity CLI Loop](cli-loop.md).
|
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
type: Domain Guide
|
|
3
|
-
title: Game UI Verification Workflow
|
|
4
|
-
description: Convert a screen recipe into repeatable input, state, hierarchy, and teardown evidence.
|
|
5
|
-
domain: game-ui
|
|
6
|
-
lifecycle: experimental
|
|
7
|
-
provenance_kind: local
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
# Game UI Verification Workflow
|
|
11
|
-
|
|
12
|
-
Primary role: game-interface acceptance and evidence procedure.
|
|
13
|
-
|
|
14
|
-
## Repository Boundary
|
|
15
|
-
|
|
16
|
-
This workflow verifies a declared game-interface contract on a named runtime. It does not authenticate third-party captures or convert a hypothetical recipe into a real gallery reference. Shared [Quality Gates](../quality/index.md) determine what a claim's evidence can support.
|
|
17
|
-
|
|
18
|
-
## Reusable Method
|
|
19
|
-
|
|
20
|
-
1. Select a [Screen Recipe](screen-recipes.md), build/version, scene, starting data, and supported inputs.
|
|
21
|
-
2. Record the active hierarchy's lifetime, input, sorting, focus, and teardown owners.
|
|
22
|
-
3. Reset to known state before each scenario. Name any non-resettable external dependency.
|
|
23
|
-
4. Execute actions in order, including an exception or interruption.
|
|
24
|
-
5. Compare expected and actual state, selection, input recipient, and surviving objects.
|
|
25
|
-
6. Save artifacts with source/build identity; classify pass, fail, not-run, or not-applicable with a reason.
|
|
26
|
-
|
|
27
|
-
## Minimum Scenario Matrix
|
|
28
|
-
|
|
29
|
-
| Dimension | Scenario | Inspect |
|
|
30
|
-
| --- | --- | --- |
|
|
31
|
-
| Entry | Open by each supported input | Correct screen and initial focus/selection |
|
|
32
|
-
| Navigation | Visit first, middle, last, and unavailable actions | Predictable order, visible target, no unreachable required action |
|
|
33
|
-
| Modality | Open overlay above a screen, then another interruption | Exactly the intended input recipient; world input policy |
|
|
34
|
-
| Cancellation | Back/Cancel during entry, request, and exit | One-layer dismissal; no click-through or stale blocker |
|
|
35
|
-
| Content | Empty, long localized text, unbroken identifiers, many rows | Readable critical information and reachable actions |
|
|
36
|
-
| Surface | Target aspect ratios, safe areas, scaled UI, constrained window | No obscured controls or accidental scroll ownership |
|
|
37
|
-
| Data | Delay, fail, supersede, and complete requests out of order | Current identities and truthful operation status |
|
|
38
|
-
| Device | Switch/disconnect a claimed input device | Updated prompts and a viable recovery action |
|
|
39
|
-
| Lifetime | Reopen repeatedly and change scene/session | No duplicate handlers, surviving blockers, or stale view updates |
|
|
40
|
-
|
|
41
|
-
This is a selection matrix. A title that supports no touch input records touch as not applicable; it does not claim a touch pass.
|
|
42
|
-
|
|
43
|
-
## Worked Scenario: Inventory With Confirmation
|
|
44
|
-
|
|
45
|
-
Precondition: local fictional test data has two items, A and B. The inventory is open with A selected; no real commerce operation is involved.
|
|
46
|
-
|
|
47
|
-
| Step | Action | Expected observation |
|
|
48
|
-
| --- | --- | --- |
|
|
49
|
-
| 1 | Navigate to B and open its action dialog | B remains selected beneath the dialog; focus enters the dialog |
|
|
50
|
-
| 2 | Press Cancel once | Only the dialog closes; focus/selection returns to B |
|
|
51
|
-
| 3 | Reopen and trigger a delayed operation | Dialog exposes pending state and the declared duplicate-input behavior |
|
|
52
|
-
| 4 | Close/change the screen, then resolve the operation | Data owner reconciles the result; destroyed views do not update |
|
|
53
|
-
| 5 | Reopen inventory | Confirmed data appears; selection follows the documented restore policy |
|
|
54
|
-
|
|
55
|
-
Actual result: `not_run`. This procedure is a test design, not engine execution evidence.
|
|
56
|
-
|
|
57
|
-
A separate [web inventory adaptation](../examples/domain-interactions/README.md) exercises nested dismissal, delayed equipment responses after view closure, selection restoration, and reward reveal. Its [local browser results](../examples/domain-interactions/verification.md) are browser evidence only. The native-engine scenario above remains `not_run`.
|
|
58
|
-
|
|
59
|
-
## Evidence Record Template
|
|
60
|
-
|
|
61
|
-
```yaml
|
|
62
|
-
scenario: inventory-dialog-return
|
|
63
|
-
build_revision: # immutable source/build identity
|
|
64
|
-
runtime: # engine, UI stack, packages, OS, device
|
|
65
|
-
surface: # resolution, aspect ratio, safe area, UI scale, locale
|
|
66
|
-
input: # exercised mode and device
|
|
67
|
-
precondition: # scene, data, selection, connectivity
|
|
68
|
-
actions: # ordered, reproducible steps
|
|
69
|
-
expected: # visible state plus hierarchy/input assertions
|
|
70
|
-
actual: not_run
|
|
71
|
-
artifacts: # capture, recording, hierarchy trace, operation log
|
|
72
|
-
limitations: # missing channels, device scope, mocked dependencies
|
|
73
|
-
consumer_reference: not_applicable
|
|
74
|
-
consumer_reference_reason: This blank procedure selects no consumer-owned reference record.
|
|
75
|
-
```
|
|
76
|
-
|
|
77
|
-
## Opinionated Guidance
|
|
78
|
-
|
|
79
|
-
Capture hierarchy and input evidence together when a screenshot could hide the failure. A visually dismissed overlay with an active blocker is a failed dismissal, regardless of its appearance.
|
|
80
|
-
|
|
81
|
-
## Platform-Specific Guidance
|
|
82
|
-
|
|
83
|
-
For Unity use the source-pinned [CLI Loop](unity/cli-loop.md) and its UI-stack-specific capabilities. If a runner cannot inspect focus or controller routing, mark those checks not-run and collect them on the real engine surface.
|
|
84
|
-
|
|
85
|
-
## Unsupported Absolutes
|
|
86
|
-
|
|
87
|
-
A successful editor inspection does not prove player-build behavior. Mocked operation responses do not prove a live service works. Device and accessibility coverage must be named explicitly.
|
|
88
|
-
|
|
89
|
-
## Verification Contract
|
|
90
|
-
|
|
91
|
-
A completed record binds actions and actual outcomes to a build and runtime, includes exceptional-state evidence, and lists missing coverage. Failed required cases need remediation and rerun. A real gallery entry must also satisfy the [Reference Record](reference-record.md). Review when input routing, engine version, hierarchy ownership, or the recipe changes.
|
|
92
|
-
|
|
93
|
-
## Source, License, And Attribution
|
|
94
|
-
|
|
95
|
-
Locally authored test procedure and fictional inventory scenario. No real game reference, asset license, or runtime result is implied.
|
|
96
|
-
|
|
97
|
-
## IA Navigation
|
|
98
|
-
|
|
99
|
-
Parent: [Game UI](index.md).
|
|
100
|
-
Next: [Game UI Reference Record](reference-record.md).
|