@aqian0/dsh-unity 0.0.0-stage → 0.1.0
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/CHANGELOG.md +53 -0
- package/LICENSE-UNITY-COMPANION.md +122 -0
- package/LICENSE.md +31 -0
- package/NOTICE.md +90 -0
- package/README.md +273 -2
- package/cordis.patch.yml +22 -0
- package/docs/design.md +297 -0
- package/icon.svg +16 -0
- package/lib/frontmatter.js +392 -0
- package/lib/gating.js +105 -0
- package/lib/harness.js +16 -0
- package/lib/index.js +171 -0
- package/lib/project.js +210 -0
- package/lib/registry.js +268 -0
- package/lib/requirements.js +214 -0
- package/lib/skills.js +191 -0
- package/lib/types/frontmatter.d.ts +84 -0
- package/lib/types/gating.d.ts +80 -0
- package/lib/types/harness.d.ts +152 -0
- package/lib/types/index.d.ts +75 -0
- package/lib/types/project.d.ts +93 -0
- package/lib/types/registry.d.ts +96 -0
- package/lib/types/requirements.d.ts +67 -0
- package/lib/types/skills.d.ts +54 -0
- package/lib/types/watch.d.ts +34 -0
- package/lib/watch.js +84 -0
- package/locale/en.json +6 -0
- package/locale/zh.json +6 -0
- package/package.json +70 -4
- package/skills/2d-pixel-perfect/SKILL.md +208 -0
- package/skills/2d-pixel-perfect/references/api-reference.md +81 -0
- package/skills/2d-pixel-perfect/references/camera-setup-builtin.cs +40 -0
- package/skills/2d-pixel-perfect/references/camera-setup-urp.cs +49 -0
- package/skills/2d-pixel-perfect/references/pipeline-detection.cs +50 -0
- package/skills/2d-pixel-perfect/references/sprite-settings.cs +37 -0
- package/skills/asset-transformer-toolkit/SECURITY.md +15 -0
- package/skills/asset-transformer-toolkit/SKILL.md +39 -0
- package/skills/asset-transformer-toolkit/references/create-importer.md +121 -0
- package/skills/asset-transformer-toolkit/references/lods.md +61 -0
- package/skills/asset-transformer-toolkit/references/rule-api.md +154 -0
- package/skills/asset-transformer-toolkit/references/ruleblock-api.md +37 -0
- package/skills/asset-transformer-toolkit/references/ruleset-api.md +138 -0
- package/skills/asset-transformer-toolkit/references/rulesets-and-actions.md +227 -0
- package/skills/audio-setup-mixers/SECURITY.md +16 -0
- package/skills/audio-setup-mixers/SKILL.md +127 -0
- package/skills/audio-setup-mixers/references/api.md +162 -0
- package/skills/build-gtk/SECURITY.md +16 -0
- package/skills/build-gtk/SKILL.md +200 -0
- package/skills/build-gtk/references/api-reference.md +33 -0
- package/skills/build-gtk/references/graph-api-gaps.md +96 -0
- package/skills/build-gtk/references/runtime-and-visualization.md +191 -0
- package/skills/build-gtk/references/state-machine-api.md +270 -0
- package/skills/build-gtk/references/where-the-docs-stop.md +49 -0
- package/skills/build-live-game/SKILL.md +159 -0
- package/skills/build-live-game/references/achievements.md +757 -0
- package/skills/build-live-game/references/apis.md +271 -0
- package/skills/build-live-game/references/authentication.md +431 -0
- package/skills/build-live-game/references/battlepass.md +904 -0
- package/skills/build-live-game/references/blueprints-and-samples.md +75 -0
- package/skills/build-live-game/references/cloud-code-cloudbehaviours.md +1111 -0
- package/skills/build-live-game/references/cloud-code-modules.md +1276 -0
- package/skills/build-live-game/references/cloud-code.md +58 -0
- package/skills/build-live-game/references/cloud-save.md +464 -0
- package/skills/build-live-game/references/deployment.md +231 -0
- package/skills/build-live-game/references/orientation.md +30 -0
- package/skills/build-live-game/references/player-account.md +821 -0
- package/skills/build-live-game/references/remote-config.md +96 -0
- package/skills/build-live-game/references/services-overview.md +76 -0
- package/skills/build-live-game/references/tooling.md +375 -0
- package/skills/build-live-game/references/ugs-cli.md +86 -0
- package/skills/craft-game-floors/SECURITY.md +23 -0
- package/skills/craft-game-floors/SKILL.md +134 -0
- package/skills/craft-game-floors/references/art-direction.md +85 -0
- package/skills/craft-game-floors/references/camera-rigs.md +51 -0
- package/skills/craft-game-floors/references/character-motion.md +35 -0
- package/skills/craft-game-floors/references/game-audio.md +47 -0
- package/skills/craft-game-floors/references/game-feel.md +68 -0
- package/skills/craft-game-floors/references/game-shell.md +45 -0
- package/skills/craft-game-floors/references/live-floor.md +35 -0
- package/skills/craft-game-floors/references/placeholder-assets.md +35 -0
- package/skills/craft-game-floors/references/scene-lighting.md +52 -0
- package/skills/craft-game-floors/references/toon-shading.md +34 -0
- package/skills/craft-game-floors/references/vfx.md +40 -0
- package/skills/craft-game-floors/references/visual-scorecard.md +43 -0
- package/skills/create-2d-physics/SECURITY.md +16 -0
- package/skills/create-2d-physics/SKILL.md +128 -0
- package/skills/create-2d-physics/references/2d-physics-core.md +155 -0
- package/skills/create-2d-physics/references/legacy-2d-physics.md +45 -0
- package/skills/create-tile-palette-or-rule-tiles/SKILL.md +95 -0
- package/skills/create-tile-palette-or-rule-tiles/references/hexagonalruletile.md +71 -0
- package/skills/create-tile-palette-or-rule-tiles/references/palette-create.md +38 -0
- package/skills/create-tile-palette-or-rule-tiles/references/ruletile-createempty.md +37 -0
- package/skills/create-tile-palette-or-rule-tiles/references/ruletile-createfromsegment.md +219 -0
- package/skills/create-tile-palette-or-rule-tiles/references/ruletile.md +95 -0
- package/skills/create-tile-palette-or-rule-tiles/scripts/CreatePaletteTemplate.cs +148 -0
- package/skills/create-tile-palette-or-rule-tiles/scripts/ManualWorkflowExample.cs +63 -0
- package/skills/create-tile-palette-or-rule-tiles/scripts/RuleTileGenerator.cs +61 -0
- package/skills/create-tile-palette-or-rule-tiles/scripts/TilemapRuleTileCreateFromSegment.cs +225 -0
- package/skills/fix-3d-physics-collisions/SECURITY.md +17 -0
- package/skills/fix-3d-physics-collisions/SKILL.md +139 -0
- package/skills/fix-3d-physics-collisions/references/collision-checklist.md +80 -0
- package/skills/fix-3d-physics-collisions/references/collision-debugger.md +18 -0
- package/skills/fix-3d-physics-collisions/references/console-errors-table.md +9 -0
- package/skills/fix-3d-physics-collisions/references/kinematic-trigger-facts.md +18 -0
- package/skills/fix-3d-physics-collisions/references/other-symptoms.md +29 -0
- package/skills/fix-3d-physics-collisions/references/raycast-checklist.md +8 -0
- package/skills/fix-3d-physics-collisions/references/topic-map.md +42 -0
- package/skills/fix-3d-physics-collisions/references/trigger-checklist.md +9 -0
- package/skills/fix-3d-physics-collisions/scripts/CollisionDebugger.cs +561 -0
- package/skills/generate-editor-search-query/SECURITY.md +17 -0
- package/skills/generate-editor-search-query/SKILL.md +117 -0
- package/skills/generate-editor-search-query/references/open-search-window.md +70 -0
- package/skills/generate-editor-search-query/references/query-patterns.md +124 -0
- package/skills/implement-in-app-purchases/SKILL.md +82 -0
- package/skills/implement-in-app-purchases/references/api-details.md +41 -0
- package/skills/implement-in-app-purchases/references/api-notes.md +105 -0
- package/skills/implement-in-app-purchases/references/codeless-catalog.md +197 -0
- package/skills/implement-in-app-purchases/references/convert-adapty.md +270 -0
- package/skills/implement-in-app-purchases/references/convert-essentialkit.md +239 -0
- package/skills/implement-in-app-purchases/references/convert-revenuecat.md +277 -0
- package/skills/implement-in-app-purchases/references/convert-unipay.md +145 -0
- package/skills/implement-in-app-purchases/references/migration-v4-to-v5.md +46 -0
- package/skills/implement-in-app-purchases/references/path-add-iap-to-new-project.md +197 -0
- package/skills/implement-in-app-purchases/references/path-convert-native-google-billing.md +302 -0
- package/skills/implement-in-app-purchases/references/path-convert-native-storekit.md +357 -0
- package/skills/implement-in-app-purchases/references/path-implement-iap-d2c.md +253 -0
- package/skills/implement-in-app-purchases/references/platform-notes.md +55 -0
- package/skills/implement-in-app-purchases/references/pre-check.md +207 -0
- package/skills/implement-in-app-purchases/references/topic-map.md +46 -0
- package/skills/initialize-ai-navigation/SKILL.md +109 -0
- package/skills/initialize-ai-navigation/references/navigation-system.md +793 -0
- package/skills/initialize-ai-navigation/references/topic-map.md +66 -0
- package/skills/levelplay-unity-integration/SKILL.md +122 -0
- package/skills/levelplay-unity-integration/references/adding-more-ad-formats.md +15 -0
- package/skills/levelplay-unity-integration/references/banner-api.md +927 -0
- package/skills/levelplay-unity-integration/references/best-practices.md +604 -0
- package/skills/levelplay-unity-integration/references/dependency-resolution.md +94 -0
- package/skills/levelplay-unity-integration/references/examples.md +10 -0
- package/skills/levelplay-unity-integration/references/ilrd-api.md +337 -0
- package/skills/levelplay-unity-integration/references/initialization-api.md +851 -0
- package/skills/levelplay-unity-integration/references/interstitial-api.md +907 -0
- package/skills/levelplay-unity-integration/references/ios-setup.md +463 -0
- package/skills/levelplay-unity-integration/references/migration-sdk-9.md +666 -0
- package/skills/levelplay-unity-integration/references/privacy-settings.md +593 -0
- package/skills/levelplay-unity-integration/references/production-release-checklist.md +22 -0
- package/skills/levelplay-unity-integration/references/rewarded-api.md +918 -0
- package/skills/levelplay-unity-integration/references/step-0-new-or-migration.md +8 -0
- package/skills/levelplay-unity-integration/references/step-1-verify-environment.md +4 -0
- package/skills/levelplay-unity-integration/references/step-10-testing.md +15 -0
- package/skills/levelplay-unity-integration/references/step-2-business-goals.md +12 -0
- package/skills/levelplay-unity-integration/references/step-3-install-sdk.md +55 -0
- package/skills/levelplay-unity-integration/references/step-4-native-dependencies.md +22 -0
- package/skills/levelplay-unity-integration/references/step-5-app-key-and-ad-units.md +18 -0
- package/skills/levelplay-unity-integration/references/step-6-5-privacy-and-regulation.md +51 -0
- package/skills/levelplay-unity-integration/references/step-6-admob-keys.md +16 -0
- package/skills/levelplay-unity-integration/references/step-7-initialize.md +50 -0
- package/skills/levelplay-unity-integration/references/step-8-ad-unit-strategy.md +16 -0
- package/skills/levelplay-unity-integration/references/step-9-implement-ad-units.md +66 -0
- package/skills/levelplay-unity-integration/references/testing-and-validation.md +222 -0
- package/skills/levelplay-unity-integration/references/troubleshooting.md +99 -0
- package/skills/localize-unity-project/SKILL.md +159 -0
- package/skills/localize-unity-project/references/api-notes.md +15 -0
- package/skills/localize-unity-project/references/cjk-fonts.md +83 -0
- package/skills/localize-unity-project/references/docs-map.md +42 -0
- package/skills/localize-unity-project/references/documentation-lookup.md +33 -0
- package/skills/localize-unity-project/references/locale-switching.md +17 -0
- package/skills/localize-unity-project/references/table-completeness-check.md +47 -0
- package/skills/localize-unity-project/references/translating-existing-project.md +47 -0
- package/skills/localize-unity-project/references/translation-strategy.md +41 -0
- package/skills/localize-unity-project/references/troubleshooting.md +12 -0
- package/skills/localize-unity-project/scripts/L10nBatchProcessor.cs +191 -0
- package/skills/localize-unity-project/scripts/LocalizedFontAsset.cs +18 -0
- package/skills/manage-sprite-atlas/SKILL.md +202 -0
- package/skills/manage-sprite-atlas/references/addressables-delivery.md +58 -0
- package/skills/manage-sprite-atlas/references/advanced-manual-authoring.md +19 -0
- package/skills/manage-sprite-atlas/references/api.md +382 -0
- package/skills/manage-sprite-atlas/references/best-practices.md +183 -0
- package/skills/manage-sprite-atlas/references/common-errors.md +123 -0
- package/skills/manage-sprite-atlas/references/complete-workflow.md +61 -0
- package/skills/manage-sprite-atlas/references/custom-packing.md +147 -0
- package/skills/manage-sprite-atlas/references/delivery-mechanism.md +30 -0
- package/skills/manage-sprite-atlas/references/key-requirements.md +21 -0
- package/skills/manage-sprite-atlas/references/manual-authoring.md +39 -0
- package/skills/manage-sprite-atlas/references/namespaces.md +15 -0
- package/skills/manage-sprite-atlas/references/v2-architecture.md +21 -0
- package/skills/manage-sprite-atlas/resources/authoringvsruntime.cs +176 -0
- package/skills/manage-sprite-atlas/resources/buildaddressablespostprocess.cs +59 -0
- package/skills/manage-sprite-atlas/resources/cacheloadedatlases.cs +145 -0
- package/skills/manage-sprite-atlas/resources/cleanupbatchoperations.cs +119 -0
- package/skills/manage-sprite-atlas/resources/createandconfiguremasteratlas.cs +57 -0
- package/skills/manage-sprite-atlas/resources/custompackersetup.cs +88 -0
- package/skills/manage-sprite-atlas/resources/deprecatedmethods.cs +142 -0
- package/skills/manage-sprite-atlas/resources/dontmodifywithoutsaving.cs +120 -0
- package/skills/manage-sprite-atlas/resources/dontpackinruntimebuilds.cs +190 -0
- package/skills/manage-sprite-atlas/resources/dontscriptspriteatlasineditor.cs +114 -0
- package/skills/manage-sprite-atlas/resources/editorconfiguration.cs +95 -0
- package/skills/manage-sprite-atlas/resources/enablespritepacking.cs +172 -0
- package/skills/manage-sprite-atlas/resources/gridspritepacker.cs +50 -0
- package/skills/manage-sprite-atlas/resources/handlelatebinding.cs +147 -0
- package/skills/manage-sprite-atlas/resources/handlenullcases.cs +141 -0
- package/skills/manage-sprite-atlas/resources/migratev1tov2.cs +335 -0
- package/skills/manage-sprite-atlas/resources/multipagepacker.cs +80 -0
- package/skills/manage-sprite-atlas/resources/optimizetexturesettings.cs +191 -0
- package/skills/manage-sprite-atlas/resources/packerdebugging.cs +158 -0
- package/skills/manage-sprite-atlas/resources/packtransform.cs +51 -0
- package/skills/manage-sprite-atlas/resources/platformnames.cs +127 -0
- package/skills/manage-sprite-atlas/resources/queryspritesefficiently.cs +222 -0
- package/skills/manage-sprite-atlas/resources/registercallbacks.cs +152 -0
- package/skills/manage-sprite-atlas/resources/runtimeatlasloader.cs +15 -0
- package/skills/manage-sprite-atlas/resources/runtimespriteaccess.cs +19 -0
- package/skills/manage-sprite-atlas/resources/savespriteatlasasset.cs +107 -0
- package/skills/manage-sprite-atlas/resources/scriptablepacker.cs +81 -0
- package/skills/manage-sprite-atlas/resources/setincludeinbuild.cs +164 -0
- package/skills/manage-sprite-atlas/resources/sizeoptimizedpacker.cs +88 -0
- package/skills/manage-sprite-atlas/resources/spriteatlaslatebinding.cs +123 -0
- package/skills/manage-sprite-atlas/resources/spriteatlasprebuildgenerator.cs +219 -0
- package/skills/manage-sprite-atlas/resources/spritedata.cs +35 -0
- package/skills/manage-sprite-atlas/resources/spritepack.cs +39 -0
- package/skills/manage-sprite-atlas/resources/texturedata.cs +15 -0
- package/skills/manage-sprite-atlas/resources/updatebuildscripts.cs +357 -0
- package/skills/manage-sprite-atlas/resources/updatesettingsconfiguration.cs +135 -0
- package/skills/manage-sprite-atlas/resources/usevariantswisely.cs +179 -0
- package/skills/manage-sprite-atlas/resources/variantatlas.cs +39 -0
- package/skills/migrate-birp-to-urp/SECURITY.md +16 -0
- package/skills/migrate-birp-to-urp/SKILL.md +167 -0
- package/skills/migrate-birp-to-urp/references/capturing-the-editor.md +66 -0
- package/skills/migrate-birp-to-urp/references/complex-shader-situations.md +272 -0
- package/skills/migrate-birp-to-urp/references/conversion-and-rendering-triage.md +113 -0
- package/skills/migrate-birp-to-urp/references/custom-shader-triage.md +123 -0
- package/skills/migrate-birp-to-urp/references/implementation-patterns.md +529 -0
- package/skills/migrate-birp-to-urp/references/migration-workflow.md +265 -0
- package/skills/migrate-birp-to-urp/references/parity-validation-and-troubleshooting.md +114 -0
- package/skills/migrate-birp-to-urp/references/preflight-and-urp-setup.md +195 -0
- package/skills/migrate-birp-to-urp/references/quality-settings-map.md +69 -0
- package/skills/new-unity-project/SECURITY.md +26 -0
- package/skills/new-unity-project/SKILL.md +171 -0
- package/skills/new-unity-project/references/checklist.md +18 -0
- package/skills/new-unity-project/references/common-mistakes.md +15 -0
- package/skills/new-unity-project/references/skill-setup.md +66 -0
- package/skills/new-unity-project/references/step-1-concept.md +13 -0
- package/skills/new-unity-project/references/step-2-platforms-and-create.md +31 -0
- package/skills/new-unity-project/references/step-3-join-and-reconcile.md +16 -0
- package/skills/new-unity-project/references/step-4-source-control.md +9 -0
- package/skills/new-unity-project/references/step-5-packages.md +18 -0
- package/skills/new-unity-project/references/step-6-identity-and-floors.md +20 -0
- package/skills/new-unity-project/references/step-7-visual-baseline.md +75 -0
- package/skills/new-unity-project/references/step-8-first-commit.md +21 -0
- package/skills/new-unity-project/references/step-9-handoff.md +23 -0
- package/skills/optimize-audio/SECURITY.md +16 -0
- package/skills/optimize-audio/SKILL.md +120 -0
- package/skills/optimize-audio/references/diagnostics.md +42 -0
- package/skills/optimize-audio/references/troubleshooting.md +41 -0
- package/skills/optimize-audio/resources/audio-import-api.md +149 -0
- package/skills/optimize-audio/resources/platform-settings.md +48 -0
- package/skills/optimize-text-mesh-pro/SKILL.md +181 -0
- package/skills/optimize-text-mesh-pro/references/dynamic-atlas-and-profiling.md +28 -0
- package/skills/optimize-text-mesh-pro/references/topic-map.md +36 -0
- package/skills/optimize-web/SECURITY.md +16 -0
- package/skills/optimize-web/SKILL.md +157 -0
- package/skills/optimize-web/references/editor-csharp.md +120 -0
- package/skills/optimize-web/references/topic-map.md +49 -0
- package/skills/optimize-web/references/troubleshooting.md +45 -0
- package/skills/optimize-web/references/understand-request.md +19 -0
- package/skills/optimize-web/references/web-assets-quality.md +59 -0
- package/skills/optimize-web/references/web-player-settings.md +39 -0
- package/skills/optimize-web/references/web-profiling-memory.md +71 -0
- package/skills/optimize-web/scripts/WebOptimizer.cs +46 -0
- package/skills/optimize-web/scripts/toktx-examples.sh +11 -0
- package/skills/setup-multiplayer-services/SKILL.md +36 -0
- package/skills/setup-multiplayer-services/references/dgs-entrypoint.md +79 -0
- package/skills/setup-multiplayer-services/references/entrypoints.md +213 -0
- package/skills/setup-multiplayer-services/references/examples.md +33 -0
- package/skills/setup-multiplayer-services/references/implementation-fit.md +30 -0
- package/skills/setup-multiplayer-services/references/underlying-services.md +11 -0
- package/skills/setup-multiplayer-services/references/workflows-prerequisites.md +17 -0
- package/skills/setup-vivox-voice-chat/SECURITY.md +16 -0
- package/skills/setup-vivox-voice-chat/SKILL.md +166 -0
- package/skills/setup-vivox-voice-chat/references/api-reference-lookup.md +28 -0
- package/skills/setup-vivox-voice-chat/references/docs-topic-map.md +13 -0
- package/skills/setup-vivox-voice-chat/references/events-and-participants.md +79 -0
- package/skills/setup-vivox-voice-chat/references/init-and-login.md +92 -0
- package/skills/setup-vivox-voice-chat/references/text-chat.md +93 -0
- package/skills/setup-vivox-voice-chat/references/troubleshooting.md +47 -0
- package/skills/setup-vivox-voice-chat/references/voice-channels.md +92 -0
- package/skills/shader-graph-create-custom-node/SKILL.md +25 -0
- package/skills/shader-graph-create-custom-node/resources/all_hints.hlsl +182 -0
- package/skills/sprite-editor/SECURITY.md +16 -0
- package/skills/sprite-editor/SKILL.md +66 -0
- package/skills/sprite-editor/references/api_reference.md +151 -0
- package/skills/sprite-editor/references/background.md +112 -0
- package/skills/sprite-editor/references/templates.md +72 -0
- package/skills/sprite-editor/scripts/AutomaticSliceTexture.cs +40 -0
- package/skills/sprite-editor/scripts/GenerateNewSpriteRects.cs +200 -0
- package/skills/sprite-editor/scripts/GetTextureSourceImageSize.cs +32 -0
- package/skills/sprite-editor/scripts/GetTextureToSlice.cs +55 -0
- package/skills/sprite-editor/scripts/GridSliceTexture.cs +40 -0
- package/skills/sprite-editor/scripts/IsometricSliceTexture.cs +141 -0
- package/skills/sprite-editor/scripts/README.md +134 -0
- package/skills/sprite-editor/scripts/SetPivotExample.cs +58 -0
- package/skills/sprite-editor/scripts/SpriteToPng.cs +88 -0
- package/skills/sprite-segment-3x3grid/SKILL.md +177 -0
- package/skills/sprite-segment-3x3grid/references/topic-map.md +37 -0
- package/skills/sprite-segment-3x3grid/scripts/SpriteGridAnalysis.cs +119 -0
- package/skills/ui/SKILL.md +142 -0
- package/skills/ui-imgui/SKILL.md +180 -0
- package/skills/ui-imgui/references/gui-elements.md +156 -0
- package/skills/ui-imgui/references/templates.md +141 -0
- package/skills/ui-ugui/SKILL.md +217 -0
- package/skills/ui-ugui/references/layout-and-anchors.md +61 -0
- package/skills/ui-ugui/references/scrollview-setup.md +29 -0
- package/skills/ui-uitk/SKILL.md +229 -0
- package/skills/ui-uitk/references/common-issues.md +74 -0
- package/skills/ui-uitk/references/custom-elements.md +241 -0
- package/skills/ui-uitk/references/painter2d.md +282 -0
- package/skills/ui-uitk/references/pointermanipulator-guide.md +94 -0
- package/skills/ui-uitk/references/svg-icons.md +136 -0
- package/skills/ui-uitk/references/ui-runtime-binding.md +234 -0
- package/skills/ui-uitk/references/uss-guide.md +138 -0
- package/skills/unity-cli/CHANGELOG.md +524 -0
- package/skills/unity-cli/SECURITY.md +68 -0
- package/skills/unity-cli/SKILL.md +160 -0
- package/skills/unity-cli/references/auth-license-cloud.md +318 -0
- package/skills/unity-cli/references/bootstrap-project.md +177 -0
- package/skills/unity-cli/references/build-run-test.md +555 -0
- package/skills/unity-cli/references/catalog-plugins.md +86 -0
- package/skills/unity-cli/references/ci-recipes.md +76 -0
- package/skills/unity-cli/references/cloud-automation.md +819 -0
- package/skills/unity-cli/references/cloud-workflows.md +19 -0
- package/skills/unity-cli/references/collaboration.md +533 -0
- package/skills/unity-cli/references/config-hub.md +239 -0
- package/skills/unity-cli/references/diagnostics-maintenance.md +718 -0
- package/skills/unity-cli/references/docs-workflow.md +179 -0
- package/skills/unity-cli/references/editor-targeting.md +29 -0
- package/skills/unity-cli/references/editors-install.md +490 -0
- package/skills/unity-cli/references/environment-variables.md +42 -0
- package/skills/unity-cli/references/exit-codes.md +47 -0
- package/skills/unity-cli/references/global-flags.md +32 -0
- package/skills/unity-cli/references/integration-advanced.md +1130 -0
- package/skills/unity-cli/references/notes.md +20 -0
- package/skills/unity-cli/references/notifications.md +39 -0
- package/skills/unity-cli/references/playmode-verification-loop.md +279 -0
- package/skills/unity-cli/references/projects-templates.md +997 -0
- package/skills/unity-cli/references/scene-editing-preflight.md +25 -0
- package/skills/unity-cli/references/setup-and-help.md +54 -0
- package/skills/unity-cli/references/version-control.md +612 -0
- package/skills/unity-package-management/SKILL.md +169 -0
- package/skills/unity-package-management/references/discovering-packages.md +66 -0
- package/skills/unity-package-management/references/headless-run.md +31 -0
- package/skills/unity-package-management/references/installer-script.md +92 -0
- package/skills/unity-package-management/references/select-packages.md +126 -0
- package/skills/unity-pipeline/SECURITY.md +17 -0
- package/skills/unity-pipeline/SKILL.md +205 -0
- package/skills/unity-pipeline/references/csharp-eval.md +23 -0
- package/skills/unity-pipeline/references/multiplayer-play-mode.md +103 -0
- package/skills/urp-postprocessing/SECURITY.md +16 -0
- package/skills/urp-postprocessing/SKILL.md +188 -0
- package/skills/urp-postprocessing/references/code-templates.md +150 -0
- package/skills/urp-postprocessing/references/effect-reference.md +86 -0
- package/skills/validate-urp-render-graph-renderer-feature/SKILL.md +92 -0
- package/skills/validate-urp-render-graph-renderer-feature/references/validation-checklist.md +179 -0
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
# Runtime Data Binding Reference
|
|
2
|
+
|
|
3
|
+
## Table of Contents
|
|
4
|
+
|
|
5
|
+
- [Core Concepts](#core-concepts)
|
|
6
|
+
- [Data Source Setup](#data-source-setup)
|
|
7
|
+
- [CRITICAL: Always Use nameof()](#critical-always-use-nameof)
|
|
8
|
+
- [Explicit Binding Element](#explicit-binding-element)
|
|
9
|
+
- [C# SetBinding (Programmatic)](#c-setbinding-programmatic)
|
|
10
|
+
- [PanelRenderer with Bindings](#panelrenderer-with-bindings)
|
|
11
|
+
|
|
12
|
+
Unity UI Toolkit runtime data binding for efficient UI updates.
|
|
13
|
+
|
|
14
|
+
## Core Concepts
|
|
15
|
+
|
|
16
|
+
**Use binding when:**
|
|
17
|
+
- Connecting game state to UI (health, score, ammo)
|
|
18
|
+
- Multiple UI elements display the same data
|
|
19
|
+
- Data changes frequently but predictably
|
|
20
|
+
|
|
21
|
+
**Avoid binding when:**
|
|
22
|
+
- One-time UI updates
|
|
23
|
+
- Per-frame updates (use direct property sets)
|
|
24
|
+
- Simple direct property assignment is clearer
|
|
25
|
+
|
|
26
|
+
## Data Source Setup
|
|
27
|
+
|
|
28
|
+
### Required: [CreateProperty] Attribute
|
|
29
|
+
|
|
30
|
+
```csharp
|
|
31
|
+
using Unity.Properties;
|
|
32
|
+
using UnityEngine;
|
|
33
|
+
|
|
34
|
+
public class PlayerData
|
|
35
|
+
{
|
|
36
|
+
[CreateProperty]
|
|
37
|
+
public int Health { get; set; }
|
|
38
|
+
|
|
39
|
+
// the private serialized field here helps the user see the property in the editor but do not create the property on the private member unless requested
|
|
40
|
+
[SerializeField, DontCreateProperty]
|
|
41
|
+
private float m_Speed;
|
|
42
|
+
|
|
43
|
+
// the public member gets a property created out of it so we bind to this property
|
|
44
|
+
[CreateProperty]
|
|
45
|
+
public float Speed
|
|
46
|
+
{
|
|
47
|
+
get => m_Speed;
|
|
48
|
+
set => m_Speed = value;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
## CRITICAL: Always Use nameof()
|
|
55
|
+
```csharp
|
|
56
|
+
element.SetBinding("value", new DataBinding
|
|
57
|
+
{
|
|
58
|
+
dataSourcePath = new PropertyPath(nameof(HealthData.HealthPercentage))
|
|
59
|
+
});
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
**Why nameof():**
|
|
63
|
+
- Compile-time safety (no typos)
|
|
64
|
+
- Refactoring support
|
|
65
|
+
- IntelliSense/autocomplete
|
|
66
|
+
- No capitalization errors
|
|
67
|
+
|
|
68
|
+
**Nested properties:**
|
|
69
|
+
```csharp
|
|
70
|
+
dataSourcePath = new PropertyPath($"{nameof(PlayerData)}.{nameof(PlayerData.Health)}.{nameof(HealthData.Current)}")
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
### Explicit Binding Element
|
|
74
|
+
|
|
75
|
+
```xml
|
|
76
|
+
<UXML xmlns:ui="UnityEngine.UIElements" xmlns:engine="UnityEngine.UIElements">
|
|
77
|
+
<Slider name="volume-slider">
|
|
78
|
+
<Bindings>
|
|
79
|
+
<engine:DataBinding
|
|
80
|
+
property="value"
|
|
81
|
+
data-source-path="MasterVolume"
|
|
82
|
+
binding-mode="TwoWay"/>
|
|
83
|
+
</Bindings>
|
|
84
|
+
</Slider>
|
|
85
|
+
</UXML>
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
The datasource can be set in the root VisualElement like:
|
|
89
|
+
```xml
|
|
90
|
+
<ui:VisualElement name="root" data-source="project://database/Assets/Scripts/PlayerData.asset?fileID=11400000&guid=976f7b99fc1424923aee5b5657723366&type=2#PlayerData" class="root">
|
|
91
|
+
```
|
|
92
|
+
This is so that UIBuilder can also read the datasource and preview the binding and control.
|
|
93
|
+
|
|
94
|
+
```csharp
|
|
95
|
+
private void OnEnable()
|
|
96
|
+
{
|
|
97
|
+
var root = GetComponent<UIDocument>().rootVisualElement;
|
|
98
|
+
root.dataSource = m_Settings;
|
|
99
|
+
}
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
## C# SetBinding (Programmatic)
|
|
103
|
+
|
|
104
|
+
### Basic Pattern
|
|
105
|
+
|
|
106
|
+
```csharp
|
|
107
|
+
using UnityEngine;
|
|
108
|
+
using UnityEngine.UIElements;
|
|
109
|
+
|
|
110
|
+
[RequireComponent(typeof(UIDocument))]
|
|
111
|
+
public class HealthBarController : MonoBehaviour
|
|
112
|
+
{
|
|
113
|
+
[SerializeField] private HealthData m_HealthData;
|
|
114
|
+
private Label m_HealthLabel;
|
|
115
|
+
private ProgressBar m_HealthBar;
|
|
116
|
+
|
|
117
|
+
private void OnEnable()
|
|
118
|
+
{
|
|
119
|
+
var root = GetComponent<UIDocument>().rootVisualElement;
|
|
120
|
+
m_HealthLabel = root.Q<Label>("health-label");
|
|
121
|
+
m_HealthBar = root.Q<ProgressBar>("health-bar");
|
|
122
|
+
|
|
123
|
+
m_HealthLabel.SetBinding("text", new DataBinding
|
|
124
|
+
{
|
|
125
|
+
dataSourcePath = new PropertyPath(nameof(HealthData.HealthText))
|
|
126
|
+
});
|
|
127
|
+
|
|
128
|
+
m_HealthBar.SetBinding("value", new DataBinding
|
|
129
|
+
{
|
|
130
|
+
dataSourcePath = new PropertyPath(nameof(HealthData.HealthPercentage))
|
|
131
|
+
});
|
|
132
|
+
|
|
133
|
+
m_HealthLabel.dataSource = m_HealthData;
|
|
134
|
+
m_HealthBar.dataSource = m_HealthData;
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
private void OnDisable()
|
|
138
|
+
{
|
|
139
|
+
if (m_HealthLabel?.HasBinding("text") == true)
|
|
140
|
+
m_HealthLabel.ClearBinding("text");
|
|
141
|
+
if (m_HealthBar?.HasBinding("value") == true)
|
|
142
|
+
m_HealthBar.ClearBinding("value");
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
### Binding Modes
|
|
148
|
+
|
|
149
|
+
```csharp
|
|
150
|
+
element.SetBinding("text", new DataBinding
|
|
151
|
+
{
|
|
152
|
+
dataSourcePath = new PropertyPath(nameof(Data.Score)),
|
|
153
|
+
bindingMode = BindingMode.ToTarget
|
|
154
|
+
});
|
|
155
|
+
|
|
156
|
+
slider.SetBinding("value", new DataBinding
|
|
157
|
+
{
|
|
158
|
+
dataSourcePath = new PropertyPath(nameof(Settings.MasterVolume)),
|
|
159
|
+
bindingMode = BindingMode.TwoWay
|
|
160
|
+
});
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
**Modes:**
|
|
164
|
+
- `ToTarget` - Data → UI (read-only, default)
|
|
165
|
+
- `ToSource` - UI → Data (write-only, rare)
|
|
166
|
+
- `TwoWay` - Data ↔ UI (input fields)
|
|
167
|
+
|
|
168
|
+
### Runtime-Created Elements
|
|
169
|
+
|
|
170
|
+
```csharp
|
|
171
|
+
var label = new Label();
|
|
172
|
+
label.SetBinding("text", new DataBinding
|
|
173
|
+
{
|
|
174
|
+
dataSourcePath = new PropertyPath(nameof(PlayerData.Name))
|
|
175
|
+
});
|
|
176
|
+
label.dataSource = m_PlayerData;
|
|
177
|
+
parentElement.Add(label);
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
## PanelRenderer with Bindings
|
|
181
|
+
|
|
182
|
+
**Unity 6.6+ only** - `PanelRenderer` is a new UI Toolkit runtime component.
|
|
183
|
+
|
|
184
|
+
**Use `PanelRenderer` instead of `UIDocument` for runtime UI with bindings.**
|
|
185
|
+
|
|
186
|
+
`PanelRenderer` provides `RegisterUIReloadCallback` which ensures bindings are properly re-established if the UI reloads.
|
|
187
|
+
|
|
188
|
+
### PanelRenderer Controller
|
|
189
|
+
|
|
190
|
+
```csharp
|
|
191
|
+
using Unity.Properties;
|
|
192
|
+
using UnityEngine;
|
|
193
|
+
using UnityEngine.UIElements;
|
|
194
|
+
|
|
195
|
+
public class StatsController : MonoBehaviour
|
|
196
|
+
{
|
|
197
|
+
[SerializeField] private MyStats m_Stats;
|
|
198
|
+
private ScriptableObject m_LoadedData;
|
|
199
|
+
|
|
200
|
+
private void Awake()
|
|
201
|
+
{
|
|
202
|
+
m_LoadedData = ScriptableObject.Instantiate(m_Stats);
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
private void OnEnable()
|
|
206
|
+
{
|
|
207
|
+
GetComponent<PanelRenderer>().RegisterUIReloadCallback(OnUIReload);
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
private void OnUIReload(PanelRenderer panelRenderer, VisualElement rootElement)
|
|
211
|
+
{
|
|
212
|
+
var hpLabel = rootElement.Q("hpLabel");
|
|
213
|
+
var mpLabel = rootElement.Q("mpLabel");
|
|
214
|
+
|
|
215
|
+
rootElement.dataSource = m_LoadedData;
|
|
216
|
+
|
|
217
|
+
hpLabel.SetBinding("text", new DataBinding
|
|
218
|
+
{
|
|
219
|
+
dataSourcePath = new PropertyPath(nameof(MyStats.HP))
|
|
220
|
+
});
|
|
221
|
+
|
|
222
|
+
mpLabel.SetBinding("text", new DataBinding
|
|
223
|
+
{
|
|
224
|
+
dataSourcePath = new PropertyPath(nameof(MyStats.MP))
|
|
225
|
+
});
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
**Key benefits:**
|
|
231
|
+
- Callback handles UI reload events automatically
|
|
232
|
+
- Bindings re-established if UI is reloaded
|
|
233
|
+
- Cleaner than manual OnEnable setup
|
|
234
|
+
- Works with ScriptableObject data sources
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
# USS Patterns and Examples
|
|
2
|
+
|
|
3
|
+
## Table of Contents
|
|
4
|
+
|
|
5
|
+
- [Design Tokens](#design-tokens)
|
|
6
|
+
- [Transitions](#transitions)
|
|
7
|
+
- [Pseudo-State Tinting](#pseudo-state-tinting)
|
|
8
|
+
- [Text Wrapping](#text-wrapping)
|
|
9
|
+
- [9-Slice Backgrounds](#9-slice-backgrounds)
|
|
10
|
+
- [Child vs Descendant Selectors](#child-vs-descendant-selectors)
|
|
11
|
+
- [Specificity](#specificity)
|
|
12
|
+
|
|
13
|
+
## Design Tokens
|
|
14
|
+
|
|
15
|
+
Use `:root` variables for repeated values:
|
|
16
|
+
|
|
17
|
+
```uss
|
|
18
|
+
:root {
|
|
19
|
+
--spacing-sm: 8px;
|
|
20
|
+
--spacing-md: 16px;
|
|
21
|
+
--spacing-lg: 24px;
|
|
22
|
+
--color-primary: #4da3ff;
|
|
23
|
+
--color-bg-dark: #1a1a1a;
|
|
24
|
+
--color-text: #ffffff;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
.container {
|
|
28
|
+
padding: var(--spacing-md);
|
|
29
|
+
background-color: var(--color-bg-dark);
|
|
30
|
+
color: var(--color-text);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
.button {
|
|
34
|
+
padding: var(--spacing-sm) var(--spacing-md);
|
|
35
|
+
background-color: var(--color-primary);
|
|
36
|
+
}
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## Transitions
|
|
40
|
+
|
|
41
|
+
Define transition properties on the **base class**, not on `:hover`. Otherwise hover-out won't animate.
|
|
42
|
+
|
|
43
|
+
```uss
|
|
44
|
+
/* CORRECT */
|
|
45
|
+
.button {
|
|
46
|
+
background-color: #4da3ff;
|
|
47
|
+
transition-duration: 0.2s;
|
|
48
|
+
}
|
|
49
|
+
.button:hover {
|
|
50
|
+
background-color: #6db3ff;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
/* WRONG - transition on :hover won't animate out */
|
|
54
|
+
.button {
|
|
55
|
+
background-color: #4da3ff;
|
|
56
|
+
}
|
|
57
|
+
.button:hover {
|
|
58
|
+
background-color: #6db3ff;
|
|
59
|
+
transition-duration: 0.2s;
|
|
60
|
+
}
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
## Pseudo-State Tinting
|
|
64
|
+
|
|
65
|
+
Prefer tinting one image instead of creating multiple image variants:
|
|
66
|
+
|
|
67
|
+
```uss
|
|
68
|
+
.button {
|
|
69
|
+
background-image: url("project://database/Assets/UI/Textures/button-bg.png");
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
.button:hover {
|
|
73
|
+
-unity-background-image-tint-color: rgba(255, 255, 255, 0.15);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
.button:active {
|
|
77
|
+
-unity-background-image-tint-color: rgba(0, 0, 0, 0.2);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
.button:disabled {
|
|
81
|
+
-unity-background-image-tint-color: rgba(128, 128, 128, 0.5);
|
|
82
|
+
}
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
## Text Wrapping
|
|
86
|
+
|
|
87
|
+
Labels don't wrap by default. Enable wrapping explicitly:
|
|
88
|
+
|
|
89
|
+
```uss
|
|
90
|
+
.description-text {
|
|
91
|
+
white-space: normal;
|
|
92
|
+
overflow: visible;
|
|
93
|
+
}
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
## 9-Slice Backgrounds
|
|
97
|
+
|
|
98
|
+
For scalable backgrounds that stretch without distorting edges:
|
|
99
|
+
|
|
100
|
+
```uss
|
|
101
|
+
.panel-background {
|
|
102
|
+
background-image: url("project://database/Assets/UI/Textures/panel-bg.png");
|
|
103
|
+
-unity-slice-left: 12;
|
|
104
|
+
-unity-slice-top: 12;
|
|
105
|
+
-unity-slice-right: 12;
|
|
106
|
+
-unity-slice-bottom: 12;
|
|
107
|
+
-unity-slice-scale: 1;
|
|
108
|
+
}
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
Slice values define the non-stretched border regions in pixels.
|
|
112
|
+
|
|
113
|
+
## Child vs Descendant Selectors
|
|
114
|
+
|
|
115
|
+
Prefer child selectors for performance:
|
|
116
|
+
|
|
117
|
+
```uss
|
|
118
|
+
/* BETTER - child selector */
|
|
119
|
+
.panel > .header > .title { }
|
|
120
|
+
|
|
121
|
+
/* AVOID - descendant selector (slower) */
|
|
122
|
+
.panel .header .title { }
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
## Specificity
|
|
126
|
+
|
|
127
|
+
More specific selectors override less specific ones. If your styles aren't applying, check for conflicting selectors:
|
|
128
|
+
|
|
129
|
+
```uss
|
|
130
|
+
/* Less specific */
|
|
131
|
+
.button { color: white; }
|
|
132
|
+
|
|
133
|
+
/* More specific - wins */
|
|
134
|
+
.panel .button { color: black; }
|
|
135
|
+
|
|
136
|
+
/* Even more specific - wins */
|
|
137
|
+
.panel > .content > .button { color: red; }
|
|
138
|
+
```
|