@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,265 @@
|
|
|
1
|
+
# Built-in to URP Migration Workflow
|
|
2
|
+
|
|
3
|
+
Use this workflow to follow the official Unity migration flow and identify when to slow down, branch, or stop.
|
|
4
|
+
|
|
5
|
+
## Table of Contents
|
|
6
|
+
|
|
7
|
+
- [Official References](#official-references)
|
|
8
|
+
- [Safety First](#safety-first)
|
|
9
|
+
- [Project Preparation](#project-preparation)
|
|
10
|
+
- [Phased Migration Model](#phased-migration-model)
|
|
11
|
+
- [Standard 3D Path: Built-in Render Pipeline to URP](#standard-3d-path-built-in-render-pipeline-to-urp)
|
|
12
|
+
- [What Each Converter Does](#what-each-converter-does)
|
|
13
|
+
- [Targeted Material-Only Path](#targeted-material-only-path)
|
|
14
|
+
- [2D Path: Built-in Render Pipeline 2D to URP 2D](#2d-path-built-in-render-pipeline-2d-to-urp-2d)
|
|
15
|
+
- [2D Lighting Note](#2d-lighting-note)
|
|
16
|
+
- [Baked Lighting, Lightmaps, And Reflection Probes](#baked-lighting-lightmaps-and-reflection-probes)
|
|
17
|
+
- [Manual Follow-Up Hot Spots](#manual-follow-up-hot-spots)
|
|
18
|
+
- [When To Stop And Escalate](#when-to-stop-and-escalate)
|
|
19
|
+
|
|
20
|
+
## Official References
|
|
21
|
+
|
|
22
|
+
- [Upgrading from the Built-in Render Pipeline to URP](https://docs.unity3d.com/Manual/urp/upgrading-from-birp.html)
|
|
23
|
+
- [Convert assets using the Render Pipeline Converter](https://docs.unity3d.com/Manual/urp/features/rp-converter.html)
|
|
24
|
+
- [Upgrade material assets to URP or HDRP](https://docs.unity3d.com/Manual/upgrade-material.html)
|
|
25
|
+
- [URP asset](https://docs.unity3d.com/Manual/urp/urp-asset-and-renderer.html)
|
|
26
|
+
- [Prepare and upgrade sprites for 2D lighting in URP](https://docs.unity3d.com/Manual/urp/PrepShader.html)
|
|
27
|
+
- [Set up a render pipeline](https://docs.unity3d.com/Manual/render-pipelines-set-up.html)
|
|
28
|
+
- [Update believable visuals in URP and HDRP](https://docs.unity3d.com/Manual/BestPracticeMakingBelievableVisuals0.html)
|
|
29
|
+
|
|
30
|
+
## Safety First
|
|
31
|
+
|
|
32
|
+
- Render Pipeline Converter changes are one-way. Run conversion only after the user has confirmed a backup, branch, or rollback point.
|
|
33
|
+
- Installing URP and assigning a URP asset can also leave the project in a partial magenta state before materials are converted. If rollback safety is not confirmed, stop before package install or Graphics/Quality assignment, not after.
|
|
34
|
+
- If the user has confirmed rollback safety or says this is a disposable copy, treat that confirmation as covering the full migration pass. Do not ask again before each converter unless a new risky decision appears.
|
|
35
|
+
- Inspect warnings before and after conversion instead of treating converter output as success by default.
|
|
36
|
+
- If the project is also moving to a new Unity version, the safer order is: engine upgrade first, render-pipeline migration second.
|
|
37
|
+
|
|
38
|
+
## Project Preparation
|
|
39
|
+
|
|
40
|
+
Before conversion:
|
|
41
|
+
|
|
42
|
+
1. Inspect whether the project is truly still on Built-in or already partially on URP.
|
|
43
|
+
2. Identify likely migration hot spots:
|
|
44
|
+
- custom shaders
|
|
45
|
+
- Asset Store rendering packages
|
|
46
|
+
- Post-processing Stack v2
|
|
47
|
+
- image effects or camera callbacks
|
|
48
|
+
- replacement shaders or special camera rendering paths
|
|
49
|
+
- multiple quality levels with different graphics expectations
|
|
50
|
+
- baked lighting, lightmaps, light probes, and reflection probes
|
|
51
|
+
3. If rendering plug-ins or packages are clearly Built-in-specific, do not assume they will survive the migration unchanged.
|
|
52
|
+
|
|
53
|
+
Do this even when the user gives a short prompt like "upgrade this project to URP." The skill, not the user, is responsible for discovering these common migration surfaces.
|
|
54
|
+
|
|
55
|
+
## Phased Migration Model
|
|
56
|
+
|
|
57
|
+
Use phases for real project upgrades. A generic "migrate this project to URP" prompt starts or resumes the next phase; it does not require finishing every fragile subsystem in one response.
|
|
58
|
+
|
|
59
|
+
| Phase | Goal | Completion gate |
|
|
60
|
+
| --- | --- | --- |
|
|
61
|
+
| Phase 0: Inspect and plan | Detect pipeline state, representative scene, rollback safety, PPv2, materials, Quality levels, lighting/probes, custom render code | Findings are reported and rollback safety is confirmed before mutation |
|
|
62
|
+
| Phase 1: URP setup and materials | Install/reuse URP, create/assign URP asset/renderer, assign Graphics/Quality, convert supported opaque and particle/effect materials | Saved Graphics/Quality and material shader assignments verify correctly |
|
|
63
|
+
| Phase 2: Post-processing and cameras | Convert PPv2 to persistent URP Volumes/profiles, wire cameras, disable legacy PPv2 for validation, classify unsupported PPv2 effects | Saved URP profile has non-null expected overrides, scene references it, legacy PPv2 is disabled or clearly preserved for comparison |
|
|
64
|
+
| Phase 3: Lighting and probes | Resolve stale Built-in lighting data, configure URP lighting/probe settings, rebake/refresh where feasible | Saved scene lighting/probe state is verified, or the phase is explicitly partial/blocked |
|
|
65
|
+
| Phase 4: Final validation | Save/reload/re-query, capture representative scenes, check Console, report complete/incomplete/manual items | Every success gate passes before using "complete" |
|
|
66
|
+
|
|
67
|
+
At the end of each phase, report:
|
|
68
|
+
|
|
69
|
+
- `Completed`: saved-state evidence for that phase.
|
|
70
|
+
- `Incomplete`: specific failed checks and whether they are repairable.
|
|
71
|
+
- `Manual follow-up`: unsupported or intentionally deferred items.
|
|
72
|
+
- `Next phase`: the exact phase to run next.
|
|
73
|
+
|
|
74
|
+
Continue into the next phase only when Unity remains stable, the next phase does not introduce a new costly/risky operation, and the user has already authorized that scope. Prefer a clear phase boundary over a rushed final answer.
|
|
75
|
+
|
|
76
|
+
## Standard 3D Path: Built-in Render Pipeline to URP
|
|
77
|
+
|
|
78
|
+
Use this path for normal 3D Built-in projects moving to URP.
|
|
79
|
+
|
|
80
|
+
For a generic "migrate/upgrade to URP" request, treat the following as part of the standard phased path unless inspection proves they are absent: URP asset/renderer setup, Graphics and Quality assignment, material conversion, particle/VFX material verification, PPv2-to-URP Volume verification, baked-lighting/lightmap/probe verification, representative scene capture, saved-state re-query, and a final complete/incomplete/manual report.
|
|
81
|
+
|
|
82
|
+
Do not downgrade common migration surfaces into manual follow-up just because the user used a short prompt. Discover PPv2, stale baked lighting, lightmaps, reflection probes, particle materials, and Quality-level assignments. A generic migration can be called complete only after these surfaces are either verified in saved project state or precisely reported as unsupported/manual edge cases. Until then, report the current phase as complete or partial instead of reporting the whole migration as complete.
|
|
83
|
+
|
|
84
|
+
Before step 1, confirm rollback safety. If no backup, branch, archive, or disposable copy is confirmed, do not install URP or assign a URP asset. Explain that those steps can immediately make supported Built-in materials render magenta until material conversion runs.
|
|
85
|
+
|
|
86
|
+
Before and after pipeline assignment, deliberately open or inspect the representative scene(s). Do not infer that baked lighting, PPv2, reflection probes, or lightmaps are absent from a default/test scene.
|
|
87
|
+
|
|
88
|
+
1. Ensure URP is installed.
|
|
89
|
+
- Package installation is a phase boundary. It may trigger package refresh, compilation, and domain reload.
|
|
90
|
+
- Do not rely on a single `PackageManager.Client.Add` tool call to complete the rest of the migration. If the chat/tool call stops or returns `null`, wait for Unity to finish compiling, then resume by inspecting the partial project state.
|
|
91
|
+
- If `Packages/manifest.json` already contains `com.unity.render-pipelines.universal`, do not reinstall URP; continue from asset setup and validation.
|
|
92
|
+
2. Create the URP asset and renderer asset if they do not already exist.
|
|
93
|
+
3. Assign the URP asset in Graphics settings. Assign it in relevant Quality levels as well.
|
|
94
|
+
- If the Console reports "Default Renderer is missing", do not stop at setup. Re-query the saved URP asset's renderer list/default index, validate a fresh scene/camera render after save/reload, and either repair the renderer asset or mark the migration partial.
|
|
95
|
+
4. Open `Window > Rendering > Render Pipeline Converter`.
|
|
96
|
+
5. Select `Built-in Render Pipeline to URP`.
|
|
97
|
+
6. Initialize converters and inspect the result set.
|
|
98
|
+
7. Run the converters that apply to the project:
|
|
99
|
+
- `Rendering Settings`
|
|
100
|
+
- `Material Upgrade`
|
|
101
|
+
- `Animation Clip Converter`
|
|
102
|
+
- `Read-only Material Converter`
|
|
103
|
+
- `Post-processing Stack v2 Converter`
|
|
104
|
+
8. Re-open representative scenes and validate before doing broad cleanup.
|
|
105
|
+
9. Verify saved assets after conversion. Do not rely only on converter or command logs.
|
|
106
|
+
- If the migration changed scene objects, camera components, PPv2 enable states, active Lighting Settings, or reflection probes, save the open scene as well as project assets. `AssetDatabase.SaveAssets()` does not prove scene changes persisted.
|
|
107
|
+
10. For Quality levels, verify saved `customRenderPipeline` entries or re-query `QualitySettings.GetRenderPipelineAssetAt(i)`. A tool log that says Quality levels were assigned is not enough.
|
|
108
|
+
11. If a script must assign Quality-level URP assets, follow URP's converter pattern: cache the current quality level, call `QualitySettings.SetQualityLevel(index)` for each target level, set `QualitySettings.renderPipeline = urpAsset`, restore the original level, save, and verify the saved `customRenderPipeline` entries. Do not use guessed APIs such as `QualitySettings.SetRenderPipelineAssetAt`.
|
|
109
|
+
12. If representative scenes use baked lighting, verify the baked-lighting state separately. Do not treat a clean compile or material conversion as proof that lightmaps and probes look correct in URP.
|
|
110
|
+
13. Before the final response, run a success gate:
|
|
111
|
+
- Saved Graphics and relevant Quality levels point at the intended URP asset.
|
|
112
|
+
- The saved URP asset has a valid default renderer and current validation is not blocked by renderer errors.
|
|
113
|
+
- Saved material assets, including particles/fog/smoke/VFX materials, use URP-compatible shaders or are listed as unresolved custom/package shader cases. Materials that had source textures/colors still have mapped URP textures/colors; white/gray untextured output is not a successful material conversion.
|
|
114
|
+
- If PPv2 existed, the saved URP Volume profile has persistent non-null `components` entries and the scene references the URP `Volume`; `components: []` means incomplete.
|
|
115
|
+
- If baked/mixed lighting, Enlighten/realtime-GI settings, Lighting Data, lightmaps, light probes, or reflection probes existed, lighting/probe repair has been attempted or the migration is explicitly partial because that phase is still running/incomplete.
|
|
116
|
+
- If a new URP `.lighting` asset was created, the saved scene's `m_LightingSettings` reference points to that asset after save/reload. Creating the asset and calling `Lightmapping.lightingSettings = target` is not sufficient evidence.
|
|
117
|
+
- A representative scene was inspected or captured after saving/reloading.
|
|
118
|
+
- If the representative capture is materially too dark, blown out, or high contrast, post-processing wiring and exposure/tonemapping/ambient balance have been verified and adjusted, or visual parity is explicitly partial.
|
|
119
|
+
- The final status wording matches the gate result. Say "complete" only when every required item passes. Say "partial" when URP setup/material conversion succeeded but PPv2, baked lighting, probes, or saved-state validation still need repair.
|
|
120
|
+
|
|
121
|
+
If only Phase 1 is complete, say "Phase 1 complete" and list Phase 2/3/4 as next work. Do not label the whole migration complete from Phase 1 evidence.
|
|
122
|
+
|
|
123
|
+
## What Each Converter Does
|
|
124
|
+
|
|
125
|
+
- `Rendering Settings`: creates URP assets and maps Built-in settings to URP equivalents.
|
|
126
|
+
- `Material Upgrade`: converts supported Built-in materials. It does not solve custom shader compatibility.
|
|
127
|
+
- Particle and VFX materials need explicit verification. If they still point at built-in particle shaders or built-in shader IDs after conversion, migrate them to URP particle shaders such as `Universal Render Pipeline/Particles/Unlit` where appropriate.
|
|
128
|
+
- Do not blindly force particle, fog, smoke, steam, decal, additive, VFX, or transparent effect materials to `Universal Render Pipeline/Lit`. Preserve transparent/additive behavior where possible, and validate off-screen/inactive particle systems by asset inspection rather than only by the current camera.
|
|
129
|
+
- `Animation Clip Converter`: runs after material conversion and helps when animation clips affect material properties or Post-processing Stack v2 properties.
|
|
130
|
+
- `Read-only Material Converter`: handles built-in read-only materials such as `Default-Diffuse` and can take longer because it indexes the project.
|
|
131
|
+
- `Post-processing Stack v2 Converter`: converts PPv2 volumes, profiles, and related camera data to URP equivalents and can also take longer because it indexes the project.
|
|
132
|
+
|
|
133
|
+
## Post-Processing Verification
|
|
134
|
+
|
|
135
|
+
PPv2 conversion is successful only if the saved project state proves it.
|
|
136
|
+
|
|
137
|
+
After any PPv2 migration attempt:
|
|
138
|
+
|
|
139
|
+
1. Re-open or re-query the converted scene.
|
|
140
|
+
2. Inspect old `PostProcessVolume`, `PostProcessLayer`, and `PostProcessProfile` usage.
|
|
141
|
+
3. Inspect the resulting URP `VolumeProfile` asset. A profile with `components: []` is empty and should not be reported as migrated. A profile with `components` entries that point to `{fileID: 0}` is also invalid and should not be reported as migrated.
|
|
142
|
+
- If the profile was created by script, `VolumeProfile.Add<T>()` must be paired with `AssetDatabase.AddObjectToAsset(component, profile)` for persistent assets. Mark both the component and profile dirty, save assets, reload it from `AssetDatabase`, and verify the non-null component count persisted.
|
|
143
|
+
- If the saved profile contains `{fileID: 0}` entries where Bloom, Tonemapping, Vignette, or Depth Of Field should be, treat that as broken persistence. Repair or recreate the profile before claiming PPv2 parity.
|
|
144
|
+
4. Confirm representative cameras have URP camera data and post-processing enabled when the visual target depends on it.
|
|
145
|
+
5. Confirm the scene has the intended URP `Volume` setup, or explicitly document that the PPv2 setup still needs manual migration.
|
|
146
|
+
- If the scene still serializes only the old PPv2 `sharedProfile` and no URP `Volume` references the new `VolumeProfile`, PPv2 migration is incomplete even if a URP profile asset exists.
|
|
147
|
+
- If a scene URP `Volume` references a profile with `components: []`, the scene has empty URP post-processing plumbing, not migrated post-processing. Repair the profile or mark PPv2 as incomplete.
|
|
148
|
+
6. If PPv2 effects include Screen Space Reflections, call out that URP has no direct equivalent in the same built-in PPv2 form. Recommend reflection probes, screen-space reflection alternatives, or a custom/third-party solution when required.
|
|
149
|
+
7. For common mappable PPv2 effects, create persistent URP overrides instead of leaving a vague manual parity task. Typical mappings include Bloom -> `UnityEngine.Rendering.Universal.Bloom`, Color Grading/exposure -> `ColorAdjustments` plus `Tonemapping`, Vignette -> `Vignette`, and Depth Of Field -> `DepthOfField`.
|
|
150
|
+
8. It is acceptable to mark unsupported or structurally different effects as manual follow-up, such as PPv2 Screen Space Reflections or Ambient Occlusion that should be handled through reflection probes, SSAO renderer features, or custom/third-party rendering.
|
|
151
|
+
9. If old PPv2 components remain as a reference while a URP Volume is active, disable the old PPv2 layer/component during URP visual validation to avoid double post-processing. Do not delete it until the saved URP replacement has been verified and the user approves cleanup.
|
|
152
|
+
10. Do not uninstall PPv2 or remove `PostProcessLayer` / `PostProcessVolume` components until the saved URP replacement has been verified, unless the user explicitly accepts effect loss or manual follow-up.
|
|
153
|
+
|
|
154
|
+
If a command log says effects were added but the saved profile is empty, report the result as a failed or incomplete post-processing migration and do not claim success. If legacy PPv2 is still active while an empty URP profile exists, do not claim URP post-processing is active; state that the old PPv2 setup is preserved but the URP replacement is incomplete.
|
|
155
|
+
|
|
156
|
+
## Material And Particle Verification
|
|
157
|
+
|
|
158
|
+
After material conversion:
|
|
159
|
+
|
|
160
|
+
1. Re-query material shader assignments on disk or through `AssetDatabase`.
|
|
161
|
+
2. Confirm standard opaque materials use URP-compatible shaders, usually `Universal Render Pipeline/Lit`.
|
|
162
|
+
3. Confirm particle, fog, smoke, steam, decal, VFX, and transparent effect materials are not left on Built-in particle shaders.
|
|
163
|
+
4. Do not rely only on "no magenta in the current camera" as proof. Some particle systems may be off-screen, inactive, or visually subtle.
|
|
164
|
+
5. If a material is custom, package-owned, or effect-heavy, classify it as manual follow-up instead of forcing it to URP Lit.
|
|
165
|
+
6. For vegetation, grass, tree, terrain-detail, SpeedTree, billboard, leaf-card, and wind-driven materials, verify more than the shader name. Preserve alpha cutoff/clipping, face/culling intent, textures, tint, normals, and expected wind/billboard behavior where possible. If foliage becomes solid opaque cards, static when it was wind-driven, or visually loses its specialized behavior, report the foliage set as partial/manual instead of calling material conversion complete.
|
|
166
|
+
7. For any converter or manual shader-assignment fallback, prove source material data survived from a pre-conversion snapshot. Cache `_MainTex`, `_Color`, normal, metallic/specular, emission, alpha/cutoff, texture tiling/offset, and source shader before conversion, then verify representative converted assets have non-null `_BaseMap`/expected textures and non-default color values when the source did.
|
|
167
|
+
8. Do not run a "repair" that copies `_MainTex` to `_BaseMap` after conversion unless the value comes from the pre-conversion snapshot. Once a shader has changed, `_MainTex` may already be null/default; copying it later can silently preserve the broken state.
|
|
168
|
+
9. Do not edit immutable package materials under `Packages/` or `Library/PackageCache`. If those assets appear in the conversion set, classify them as package-owned/read-only and use a local material copy or scoped custom replacement instead.
|
|
169
|
+
10. If a representative capture shows broad white/gray untextured objects after conversion, or if snapshot comparison shows source materials had albedo textures but converted materials have null `_BaseMap`, treat the material phase as incomplete even if the materials are no longer magenta.
|
|
170
|
+
|
|
171
|
+
If rollback safety was already confirmed, continue repairing ordinary material, renderer, PPv2, lighting, or probe failures instead of asking the user whether to continue. Ask only when a new destructive cleanup choice, unsupported custom shader strategy, long-running phase boundary, or repeated validation failure requires the user's decision.
|
|
172
|
+
|
|
173
|
+
## Partial Migration Resume Checklist
|
|
174
|
+
|
|
175
|
+
If a migration stops after installing URP, after a domain reload, after a phase boundary, or after a long-running bake:
|
|
176
|
+
|
|
177
|
+
1. Re-check whether URP is now installed in `Packages/manifest.json`.
|
|
178
|
+
2. Check whether a URP asset and renderer asset exist and are valid.
|
|
179
|
+
3. Verify Graphics settings and every relevant Quality level point to the intended URP asset.
|
|
180
|
+
4. Re-query material shader assignments, including particle/fog/smoke/VFX materials. If supported Built-in shader GUIDs or names still dominate after URP is assigned, material conversion is the immediate next incomplete phase; do not stop at "URP setup complete" when the scene is still magenta.
|
|
181
|
+
5. Inspect PPv2 state and URP Volume profiles. Empty `components: []` profiles are incomplete.
|
|
182
|
+
6. Inspect baked lighting/lightmap state. If old lightmaps blow out the scene, preserve them as reference, clear active baked data, rebake under URP, and refresh reflection probes.
|
|
183
|
+
- If a new URP-compatible Lighting Settings asset exists, verify the saved scene actually references it. A scene that still references the old Enlighten/realtime-GI `.lighting` asset is not fully repaired.
|
|
184
|
+
- If old `LightingData.asset` remains assigned and old reflection-probe EXRs are unchanged, do not say lighting or probes were refreshed. Report them as preserved reference data or partial until a URP bake/probe refresh completes.
|
|
185
|
+
7. If a previous run ended at "would you like me to continue?" but rollback safety was already confirmed, resume from the first incomplete item instead of restarting or asking again.
|
|
186
|
+
8. Capture a representative scene and report exactly which items are complete, incomplete, or manual follow-up.
|
|
187
|
+
9. Name the next phase instead of restarting. For example: "Resume at Phase 2: Post-processing and cameras" or "Resume at Phase 3: Lighting and probes."
|
|
188
|
+
|
|
189
|
+
## Targeted Material-Only Path
|
|
190
|
+
|
|
191
|
+
Use this only when the user wants selected materials converted instead of a full migration.
|
|
192
|
+
|
|
193
|
+
1. Confirm the project is already on URP.
|
|
194
|
+
2. Select the Built-in materials in the Project window.
|
|
195
|
+
3. Use `Edit > Rendering > Materials > Convert Selected Built-in Materials to URP`.
|
|
196
|
+
4. If a material still errors in the Inspector or stays magenta, treat it as a shader triage case rather than retrying blindly.
|
|
197
|
+
5. Validate one or two representative scenes after conversion because selected material upgrades can still create visual drift.
|
|
198
|
+
|
|
199
|
+
## 2D Path: Built-in Render Pipeline 2D to URP 2D
|
|
200
|
+
|
|
201
|
+
Use this path when the project is primarily 2D and the target is URP 2D.
|
|
202
|
+
|
|
203
|
+
1. Ensure URP is installed.
|
|
204
|
+
2. Create and assign a 2D Renderer asset.
|
|
205
|
+
3. Open `Window > Rendering > Render Pipeline Converter`.
|
|
206
|
+
4. Select `Built-in Render Pipeline 2D to URP 2D`.
|
|
207
|
+
5. Use `Material and Material Reference Upgrade`.
|
|
208
|
+
6. If the user wants 2D lighting, verify that sprites and materials are using URP-compatible lit materials after conversion.
|
|
209
|
+
|
|
210
|
+
## 2D Lighting Note
|
|
211
|
+
|
|
212
|
+
For 2D lighting in URP, Unity can assign `Sprite-Lit-Default` when sprites are dragged into the scene. Existing project materials still need to be upgraded if they should react to 2D lights.
|
|
213
|
+
|
|
214
|
+
## Baked Lighting, Lightmaps, And Reflection Probes
|
|
215
|
+
|
|
216
|
+
Baked lighting does not become visually correct just because the project compiles after URP setup.
|
|
217
|
+
|
|
218
|
+
For scenes with baked or mixed lighting:
|
|
219
|
+
|
|
220
|
+
1. Preserve existing Lighting Data, lightmaps, light probes, and reflection probes as reference data until visual parity is accepted.
|
|
221
|
+
2. Inventory `Lightmapping.lightingSettings`, scene `LightmapSettings`, baked/mixed lights, light probes, reflection probes, and the scene's Lighting Data asset.
|
|
222
|
+
3. Check whether the migrated scene is overexposed or too dark because both old PPv2 and new URP Volume effects are active. For URP validation, disable legacy PPv2 components/layers but do not delete them.
|
|
223
|
+
4. Review URP Volume exposure, tonemapping, bloom, and color adjustments before changing light intensities.
|
|
224
|
+
5. If the scene is still too dark, blown out, or high contrast after PPv2/URP Volume migration, run an exposure-balance check before the final report. Verify renderer `PostProcessData`, camera `renderPostProcessing`, `volumeLayerMask`, active Volume weight/priority/layer, and non-empty saved Volume overrides before changing values. Then tune exposure, tonemapping, lift/gamma/gain, bloom, ambient fill, additional-light limits, and shadows in bounded steps with captures between attempts.
|
|
225
|
+
6. If clearing baked data makes the scene stop being blown out, treat the previous lightmaps/Lighting Data as stale active data for URP. Keep them as reference/rollback evidence, but do not tune final URP lighting against them.
|
|
226
|
+
7. If parity matters, clear/rebake lighting under URP and refresh reflection probes after URP assets, renderer features, volumes, and quality settings are finalized when the user has permitted changes. If the bake is too long or interrupted, report a partial migration and resume from this phase later rather than claiming completion.
|
|
227
|
+
8. When assigning new URP-compatible `LightingSettings`, remember that the active lighting-settings reference is scene state. Mark the settings and active scene dirty, save the scene, reload or re-query, and verify the saved scene references the intended asset before reporting it as active. `AssetDatabase.SaveAssets()` alone does not prove the scene's `m_LightingSettings` reference changed.
|
|
228
|
+
9. If the saved scene still references the old Enlighten/realtime-GI `.lighting` asset, the lighting phase is incomplete even if a new URP lighting settings asset exists on disk.
|
|
229
|
+
10. Report baked lighting as one of: preserved as reference, stale active bake cleared, visually checked and acceptable, rebaked/refreshed under URP, exposure-balanced with remaining bake risk, or manual follow-up. Do not report it as fully migrated from compile success alone.
|
|
230
|
+
11. Do not claim visual parity is preserved while old Built-in `LightingData.asset` and old reflection-probe EXRs remain active without a URP rebake/probe refresh or explicit saved-state visual verification.
|
|
231
|
+
12. Do not claim reflection probes were refreshed from intent alone. Verify successful probe-render output, changed probe assets, or a saved-state visual check. Unchanged old EXR files mean probe refresh is still partial/manual.
|
|
232
|
+
|
|
233
|
+
## Manual Follow-Up Hot Spots
|
|
234
|
+
|
|
235
|
+
Even when the converter succeeds, these areas often still need attention:
|
|
236
|
+
|
|
237
|
+
- custom shaders and package shaders
|
|
238
|
+
- PPv2 and fullscreen image effects
|
|
239
|
+
- replacement-shader camera workflows
|
|
240
|
+
- baked lighting, lightmaps, light probes, reflection probes, and shadow tuning
|
|
241
|
+
- quality-level assignments
|
|
242
|
+
- 2D lit materials and sprite workflows
|
|
243
|
+
- visual parity around tone mapping, exposure, and light falloff
|
|
244
|
+
|
|
245
|
+
For real project upgrades, explicitly verify:
|
|
246
|
+
|
|
247
|
+
- material shader assignments on disk
|
|
248
|
+
- particle/VFX material shader assignments
|
|
249
|
+
- Graphics settings and each relevant Quality level
|
|
250
|
+
- URP renderer features that were added
|
|
251
|
+
- persistent URP Volume profile components
|
|
252
|
+
- representative scene camera data and active legacy post-processing components
|
|
253
|
+
- baked-lighting state and whether a URP rebake/probe refresh is still required
|
|
254
|
+
|
|
255
|
+
## When To Stop And Escalate
|
|
256
|
+
|
|
257
|
+
Stop and explain the blocker instead of guessing when:
|
|
258
|
+
|
|
259
|
+
- custom shaders drive important visuals
|
|
260
|
+
- complex shader situations such as surface shaders, `GrabPass`, replacement shaders, or fullscreen camera callbacks are involved
|
|
261
|
+
- package-owned shaders are involved and the safe fix is unclear
|
|
262
|
+
- converter results contain unresolved warnings or failures
|
|
263
|
+
- baked lighting is important to the scene and no URP bake/visual parity check has been performed; for a generic full migration, this means the migration is partial, not complete
|
|
264
|
+
- the project mixes 2D and 3D requirements and the target renderer choice is unclear
|
|
265
|
+
- the user has not confirmed rollback safety for irreversible conversion
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
# 9. Quality, Lighting, and Visual Parity Review
|
|
2
|
+
|
|
3
|
+
Use [references/quality-settings-map.md](quality-settings-map.md) when the user mentions visual mismatch, shadows, performance, or quality settings.
|
|
4
|
+
|
|
5
|
+
1. **Review Graphics settings and each active Quality level.**
|
|
6
|
+
- If a Quality level has no custom URP asset, state whether that level intentionally falls back to Graphics settings or still needs explicit assignment.
|
|
7
|
+
- Do not claim all quality levels are migrated unless each relevant level has been inspected.
|
|
8
|
+
- If using serialized project settings, the saved field is commonly `customRenderPipeline`; writing a guessed field such as `renderPipelineAsset` is not enough unless the saved asset proves the assignment.
|
|
9
|
+
- If assigning through script, use the same pattern as URP's Render Settings converter: cache `QualitySettings.GetQualityLevel()`, call `QualitySettings.SetQualityLevel(index)` for each target level, assign `QualitySettings.renderPipeline = urpAsset`, then restore the original quality level and verify on disk.
|
|
10
|
+
2. **Check URP asset settings** that commonly affect parity:
|
|
11
|
+
- shadows
|
|
12
|
+
- shadow distance and cascades
|
|
13
|
+
- MSAA
|
|
14
|
+
- render scale
|
|
15
|
+
- HDR, opaque texture, and depth texture settings when effects depend on them
|
|
16
|
+
3. **Do not promise identical lighting automatically.**
|
|
17
|
+
- Built-in and URP can differ in light falloff, baked GI appearance, shadow tuning, reflection probe response, tonemapping, exposure, and post-processing behavior.
|
|
18
|
+
4. **For baked lighting scenes,** treat existing lightmaps and Lighting Data as reference material, not guaranteed-final URP output.
|
|
19
|
+
- Inventory `Lightmapping.lightingSettings`, scene `LightmapSettings`, baked/mixed lights, light probes, reflection probes, and any existing `LightingDataAsset`.
|
|
20
|
+
- Preserve baked data until the user has a visual reference or rollback point, but do not keep stale Built-in lightmaps active as the final URP lighting solution if they blow out or distort the scene.
|
|
21
|
+
- If the scene looks blown out, too dark, or mismatched, first isolate post-processing/exposure by disabling legacy PPv2 during URP validation, then review URP Volume exposure/tonemapping/bloom before changing lights.
|
|
22
|
+
- If clearing baked data makes the scene stop being blown out, identify the old lightmaps/Lighting Data as stale or incompatible active data. Then rebake under URP with the final URP asset, renderer, Volume, and Quality settings instead of tuning lights against the stale bake.
|
|
23
|
+
- If creating or assigning URP-compatible `LightingSettings`, mark the lighting settings and active scene dirty, save the scene, reload or re-query, and verify the saved scene references the intended `.lighting` asset. `AssetDatabase.SaveAssets()` alone does not save the scene's `Lightmapping.lightingSettings` reference. Do not report "Baked GI enabled" if the saved scene still points at an Enlighten/realtime-GI settings asset.
|
|
24
|
+
- When visual parity is part of the request and old `LightingData.asset` / reflection-probe EXRs remain from the Built-in bake, treat them as reference data until rebaked/refreshed under URP. Do not claim visual parity is preserved from old bake data alone.
|
|
25
|
+
- Recommend clearing/rebaking lighting and refreshing reflection probes when visual parity matters. Do not claim baked lighting was successfully migrated unless a representative scene has been visually checked after URP setup, and preferably after a URP bake.
|
|
26
|
+
5. **For 2D lighting projects,** ensure sprites and tilemaps use URP-compatible lit materials where required.
|
|
27
|
+
6. **For performance regressions,** inspect whether the issue is coming from:
|
|
28
|
+
- heavier URP asset settings
|
|
29
|
+
- post-processing
|
|
30
|
+
- extra shadow cost
|
|
31
|
+
- custom shader ports or non-batched shaders
|
|
32
|
+
7. **When changing URP asset settings,** re-read the saved asset or query the property after saving before reporting values such as MSAA, additional-light limits, HDR, depth texture, or opaque texture.
|
|
33
|
+
# 10. Validation
|
|
34
|
+
|
|
35
|
+
After setup, conversion, or troubleshooting, validate the result:
|
|
36
|
+
|
|
37
|
+
1. **Capture the scene:** Capture the Scene View or a specific camera on a representative scene — see [references/capturing-the-editor.md](capturing-the-editor.md).
|
|
38
|
+
2. **Evaluate the result:**
|
|
39
|
+
- no magenta materials unless unresolved custom shader blockers remain
|
|
40
|
+
- main lighting and shadows behave as expected
|
|
41
|
+
- baked GI/lightmaps, light probes, and reflection probes are acceptable or explicitly marked for rebake/refresh
|
|
42
|
+
- cameras render expected content
|
|
43
|
+
- post-processing or fullscreen effects still behave correctly
|
|
44
|
+
- sprites, tilemaps, or 2D lights work when relevant
|
|
45
|
+
3. **Verify persistent project data, not only visual output.**
|
|
46
|
+
- Inspect saved URP assets, renderer assets, scene references, material shader GUIDs/names, Quality settings, and Volume profiles.
|
|
47
|
+
- Confirm the representative scene, not a default/test scene, was opened or otherwise inspected before concluding that baked lighting, PPv2, or reflection probes are absent.
|
|
48
|
+
- For material migration, include particle/VFX materials in the verification. Remaining built-in particle shader IDs or legacy particle shader names mean material migration is incomplete.
|
|
49
|
+
- For PPv2 migrations, saved URP `VolumeProfile` assets must contain the expected override components before reporting them as migrated.
|
|
50
|
+
- If a tool log reports mapped post-processing but the saved profile reloads with `components: []`, override the tool log and report the migration as failed/incomplete.
|
|
51
|
+
- For baked-lighting scenes, inspect Lighting Settings, Lighting Data/lightmap references, light probes, and reflection probes. Compilation success does not prove baked lighting parity. If old lightmaps cause overexposure, clear active baked data and rebake under URP before judging parity. After assigning new lighting settings, verify the saved scene reference, not only the existence of the new `.lighting` asset.
|
|
52
|
+
- If old `LightingData.asset` remains assigned and reflection-probe EXRs were not regenerated or explicitly accepted after visual inspection, classify lighting/probes as preserved or partial rather than refreshed.
|
|
53
|
+
4. **Check Console output** with `Unity.GetConsoleLogs` for shader, render pipeline, or renderer-feature errors.
|
|
54
|
+
5. **Fix the highest-impact issue first,** then validate again.
|
|
55
|
+
6. **Repeat for at most 3 iterations** before reporting remaining blockers or asking the user how they want to proceed.
|
|
56
|
+
# 11. Troubleshooting Decision Tree
|
|
57
|
+
|
|
58
|
+
If the user reports a migration problem, follow this diagnostic flow:
|
|
59
|
+
|
|
60
|
+
## Project still behaves like Built-in after "migration"
|
|
61
|
+
1. Check whether a URP asset is assigned in Graphics settings.
|
|
62
|
+
2. Check whether the relevant Quality levels also point to a URP asset.
|
|
63
|
+
3. Verify that the active render pipeline is actually URP before troubleshooting anything else.
|
|
64
|
+
|
|
65
|
+
## Migration stopped after installing URP
|
|
66
|
+
1. Treat this as a package-refresh/domain-reload boundary, not a failed full migration by itself.
|
|
67
|
+
2. Re-check `Packages/manifest.json` and package state. If URP is installed, do not reinstall it.
|
|
68
|
+
3. Inspect for partial assets such as URP assets, renderer assets, converted materials, empty Volume profiles, and scene component changes.
|
|
69
|
+
4. If URP is installed/assigned but Built-in materials still dominate or the scene is magenta, material conversion is the immediate next incomplete item. Do not call URP setup complete and stop there if rollback safety has already been confirmed.
|
|
70
|
+
5. Continue from the first incomplete verification item: Graphics/Quality assignment, renderer asset validity, material conversion, PPv2-to-URP Volume migration, baked-lighting rebake, then final validation.
|
|
71
|
+
6. If the previous chat/export has no final response, report it as incomplete evidence and continue in a fresh chat/turn.
|
|
72
|
+
|
|
73
|
+
## Materials are magenta / bright pink
|
|
74
|
+
1. Check Console and Inspector for shader errors.
|
|
75
|
+
2. Confirm whether the material uses a supported Built-in shader, a custom shader, or a package-owned shader.
|
|
76
|
+
3. If it is a supported Built-in shader, review the converter path or targeted material conversion first.
|
|
77
|
+
4. If the project is already on URP and many supported Built-in materials remain, treat this as incomplete material conversion, not as final visual parity work.
|
|
78
|
+
5. If it is a custom or package shader, move into [references/custom-shader-triage.md](custom-shader-triage.md) and, when needed, [references/complex-shader-situations.md](complex-shader-situations.md).
|
|
79
|
+
|
|
80
|
+
## Scene is much darker, brighter, or just "wrong"
|
|
81
|
+
1. Compare Scene View and Game View captures.
|
|
82
|
+
2. Check for double post-processing first: retained PPv2 `PostProcessVolume` / `PostProcessLayer` plus an active URP `Volume` can overexpose or otherwise distort validation captures.
|
|
83
|
+
3. Review shadows, ambient/environment lighting, tone mapping, skybox, exposure, bloom, and post-processing.
|
|
84
|
+
4. Inspect baked lighting state: Lighting Settings, Lighting Data asset, lightmap references, mixed/baked lights, light probes, and reflection probes.
|
|
85
|
+
5. Review quality-level assignments and URP asset settings before rewriting content.
|
|
86
|
+
6. If clearing baked data fixes severe overexposure, treat the old lightmaps as stale active data: keep them only as reference/rollback evidence, then rebake under URP.
|
|
87
|
+
7. If the scene depends on baked lighting, recommend a URP rebake and reflection-probe refresh before claiming visual parity.
|
|
88
|
+
8. Remember that Built-in and URP light falloff can differ; treat that as a tuning task, not proof that conversion failed.
|
|
89
|
+
|
|
90
|
+
## Post-processing or fullscreen effects disappeared
|
|
91
|
+
1. Check whether PPv2 was converted and whether the target camera and volume setup are still valid.
|
|
92
|
+
2. Inspect saved URP `VolumeProfile` assets. Empty profiles mean PPv2 effects were not actually migrated.
|
|
93
|
+
3. Check whether old `PostProcessVolume` / `PostProcessLayer` components remain active in scenes.
|
|
94
|
+
4. Search for `OnRenderImage`, custom blit code, or replacement-shader camera effects.
|
|
95
|
+
5. Port the effect using a URP-compatible approach rather than trying to preserve the Built-in callback path unchanged.
|
|
96
|
+
|
|
97
|
+
## Transparent / refraction / distortion effects broke
|
|
98
|
+
1. Inspect whether the shader relied on `GrabPass` or a similar Built-in screen-copy workflow.
|
|
99
|
+
2. If so, use [references/complex-shader-situations.md](complex-shader-situations.md) and choose a Scene Color / Renderer Feature / custom-pass approach.
|
|
100
|
+
|
|
101
|
+
## 2D lights are not affecting sprites
|
|
102
|
+
1. Confirm the project is actually using the 2D Renderer.
|
|
103
|
+
2. Confirm existing sprite materials were upgraded to URP-compatible lit materials where needed.
|
|
104
|
+
3. Do not assume dragged-in new sprites prove old project materials are correct.
|
|
105
|
+
|
|
106
|
+
## Performance regressed after migration
|
|
107
|
+
1. Review render scale, shadows, additional lights, MSAA, post-processing, opaque/depth textures, and other URP asset settings.
|
|
108
|
+
2. Check whether custom shader ports lost batching compatibility or introduced extra passes.
|
|
109
|
+
3. Tune settings before assuming the only answer is a rollback.
|
|
110
|
+
|
|
111
|
+
## Custom shader compiles but visuals are still wrong
|
|
112
|
+
1. Determine whether the issue is simple parameter drift or a structural incompatibility.
|
|
113
|
+
2. If the shader came from a surface shader, `GrabPass`, replacement-shader workflow, or custom lighting path, treat it as a complex migration case.
|
|
114
|
+
3. Validate one representative material before rolling the approach out project-wide.
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
# Detecting the active render pipeline
|
|
2
|
+
|
|
3
|
+
```csharp
|
|
4
|
+
var rp = UnityEngine.Rendering.GraphicsSettings.defaultRenderPipeline;
|
|
5
|
+
var qrp = UnityEngine.QualitySettings.renderPipeline;
|
|
6
|
+
return $"graphics={(rp == null ? "NULL (Built-in)" : rp.GetType().Name + ":" + rp.name)}, "
|
|
7
|
+
+ $"activeQualityLevel={(qrp == null ? "inherits Graphics" : qrp.GetType().Name + ":" + qrp.name)}";
|
|
8
|
+
```
|
|
9
|
+
|
|
10
|
+
A `UniversalRenderPipelineAsset` means URP; `HDRenderPipelineAsset` means HDRP; `NULL` on both
|
|
11
|
+
means Built-in. **Check the per-quality-level assignment too** — a project can be switched in
|
|
12
|
+
Graphics settings while a Quality level still points at a different asset, or at none:
|
|
13
|
+
|
|
14
|
+
```csharp
|
|
15
|
+
var names = UnityEngine.QualitySettings.names;
|
|
16
|
+
var rows = new System.Collections.Generic.List<string>();
|
|
17
|
+
for (int i = 0; i < names.Length; i++)
|
|
18
|
+
{
|
|
19
|
+
var a = UnityEngine.QualitySettings.GetRenderPipelineAssetAt(i);
|
|
20
|
+
rows.Add($"{i}:{names[i]}={(a == null ? "inherits Graphics" : a.name)}");
|
|
21
|
+
}
|
|
22
|
+
return string.Join(", ", rows);
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
If `GetRenderPipelineAssetAt` is unavailable in the project's Unity version, read
|
|
26
|
+
`ProjectSettings/QualitySettings.asset` instead rather than switching levels at runtime —
|
|
27
|
+
`SetQualityLevel` mutates project state.
|
|
28
|
+
# Critical Default
|
|
29
|
+
|
|
30
|
+
For simple requests like "migrate this Built-in project to URP" or "move this project to URP", start or resume the safe migration workflow rather than jumping straight to conversion.
|
|
31
|
+
|
|
32
|
+
A generic upgrade prompt must not require the user to mention every migration risk. Inspect and handle common Built-in dependencies such as PPv2, baked lighting/lightmaps, reflection probes, particle/fog/smoke materials, Quality levels, camera post-processing, and representative scene validation.
|
|
33
|
+
|
|
34
|
+
Default result is phase-based:
|
|
35
|
+
|
|
36
|
+
1. Detect whether the project is Built-in, partially migrated, already URP, or HDRP.
|
|
37
|
+
2. Classify the request as standard 3D URP, URP 2D, selected-material conversion, planning-only, or troubleshooting.
|
|
38
|
+
3. Inspect migration risks before recommending changes: opaque materials, particle/VFX materials, custom shaders, post-processing, camera effects, baked lighting/lightmaps/reflection probes, Quality levels, and representative scenes.
|
|
39
|
+
4. Stop before any pipeline-mutating work until the user confirms a rollback point such as a branch, backup, archive, or disposable copy. Pipeline-mutating work includes installing URP, assigning a URP asset in Graphics/Quality settings, running converters, and editing materials or scenes.
|
|
40
|
+
5. Choose the next migration phase, execute that phase, save/re-query its outputs, and report its phase status.
|
|
41
|
+
6. Treat custom shaders, `GrabPass`, Surface Shaders, `OnRenderImage`, replacement shaders, and package-owned shaders as scoped follow-up work, not automatic converter work.
|
|
42
|
+
7. Validate representative scenes, Console output, camera rendering, lighting/baked GI state, materials, post-processing persistence, and quality-level assignments before declaring full migration success.
|
|
43
|
+
|
|
44
|
+
Default phases:
|
|
45
|
+
|
|
46
|
+
- Phase 0: Inspect and plan. Detect pipeline state, representative scenes, rollback safety, PPv2, material/shader risks, Quality levels, lighting/lightmap/probe state, and custom render code.
|
|
47
|
+
- Phase 1: URP setup and supported material conversion. Install/reuse URP, create/assign URP assets in Graphics/Quality, convert supported opaque and particle/effect materials, and verify no supported materials remain on Built-in shaders.
|
|
48
|
+
- Phase 2: Post-processing and camera migration. Create persistent URP Volume profiles, wire scene Volumes/camera post-processing, disable legacy PPv2 for URP validation, and classify unsupported PPv2 effects such as SSR.
|
|
49
|
+
- Phase 3: Lighting, lightmaps, and reflection probes. Resolve stale Built-in lighting state, configure URP lighting/probe settings, rebake/refresh when feasible, or clearly mark lighting/probes partial.
|
|
50
|
+
- Phase 4: Final validation and report. Save/reload/re-query project state, capture representative scenes, check Console, and report complete/incomplete/manual items.
|
|
51
|
+
|
|
52
|
+
One turn may complete multiple phases if the project is small and Unity remains stable, but do not force all phases into one response. Prefer an honest phase boundary over an over-claimed "complete" result.
|
|
53
|
+
|
|
54
|
+
Ask configuration questions only when the project state or user intent leaves a real decision unresolved. If the user says "do not modify files", stay in audit/planning mode and do not perform conversion or asset edits.
|
|
55
|
+
|
|
56
|
+
## Generic Upgrade Contract
|
|
57
|
+
|
|
58
|
+
When the user gives a generic migration request and permits changes, drive the next phase from the project state:
|
|
59
|
+
|
|
60
|
+
1. Do not ask the user to enumerate known Built-in features before inspection. Discover them.
|
|
61
|
+
2. If PPv2, baked lighting, reflection probes, particle/fog/smoke materials, or multiple Quality levels exist, include them in the migration automatically.
|
|
62
|
+
3. Prefer phase completion over all-in-one completion. Each phase should save/re-query its own outputs and end with `Phase complete`, `Phase partial`, or `Blocked`.
|
|
63
|
+
4. If Unity compilation, package installation, domain reload, or a long lighting bake interrupts the pass, report the interruption as a phase boundary and resume from saved partial state in the next turn rather than starting over.
|
|
64
|
+
5. Do not rely on the user writing a detailed checklist prompt to get correct behavior. The detailed checklist is for benchmarking or stress testing; normal user prompts should still trigger this phased contract.
|
|
65
|
+
6. A generic migration request gives permission to inspect and plan, but it does not prove rollback safety. If no rollback point is confirmed, stop before package install or URP assignment and ask for confirmation. Do not leave the project in a magenta partial state just to reach the backup question.
|
|
66
|
+
7. If rollback safety is already confirmed or the user says the project is a disposable copy, continue within the current phase without asking again for routine work.
|
|
67
|
+
8. At the end of a phase, give a concise next-phase prompt or say what phase should run next. Ask for confirmation before the next phase only when it introduces a new costly or risky operation, such as a long lighting bake, deletion/cleanup of legacy assets, or a custom shader rewrite.
|
|
68
|
+
9. If rollback safety was confirmed and ordinary work inside the active phase remains incomplete, do not ask "would you like me to continue?" Continue repairing that phase until its gate passes, a tool/domain-reload boundary interrupts execution, or a genuinely new risky decision appears.
|
|
69
|
+
|
|
70
|
+
## Generic Migration Success Gate
|
|
71
|
+
|
|
72
|
+
Before saying a generic migration is "successful", "complete", or "fully migrated", verify saved project state, not just tool logs:
|
|
73
|
+
|
|
74
|
+
1. Graphics settings and every relevant Quality level point to the intended URP asset.
|
|
75
|
+
2. The URP asset has a valid default renderer in saved state, and current Console output does not contain unresolved render-pipeline errors such as "Default Renderer is missing". If a renderer error appears after assignment, re-query the saved renderer list/default index, clear stale Console output when possible, trigger a fresh scene/camera validation, and continue repair instead of stopping at "URP setup complete".
|
|
76
|
+
3. Supported Built-in materials, including particle/fog/smoke materials, have URP-compatible shaders or are explicitly listed as unresolved custom/package shader cases. Textured/colorized source materials must preserve their source maps/colors; a URP shader assignment with missing `_BaseMap` or all-white `_BaseColor` is incomplete if the source `_MainTex` or `_Color` had content. Particle, fog, smoke, steam, decal, VFX, additive, and transparent effect materials should not be blindly forced to `Universal Render Pipeline/Lit`; prefer URP particle/effect shaders such as `Universal Render Pipeline/Particles/Unlit` when appropriate.
|
|
77
|
+
4. If the source scene used PPv2, a saved URP `VolumeProfile` exists with persistent non-null override components, the representative scene references it through a URP `Volume`, and legacy PPv2 is disabled for URP visual validation. A saved profile with `components: []`, `{fileID: 0}` component refs, or a scene that still only references the old `PostProcessProfile` is incomplete.
|
|
78
|
+
5. If the representative scene uses baked/mixed lighting, an Enlighten/realtime-GI Lighting Settings asset, a Lighting Data asset, lightmaps, light probes, or reflection probes, do not leave routine lighting/probe repair as manual follow-up during a generic full migration. Attempt URP-compatible Lighting Settings assignment, clear/rebake or resume a bake when needed, refresh reflection probes when feasible, then save/reload and verify the scene references the intended lighting state. Creating a `.lighting` asset and calling `Lightmapping.lightingSettings = target` plus `AssetDatabase.SaveAssets()` is not enough; mark/save the scene, reload/re-query, and compare the saved scene `m_LightingSettings` reference or asset GUID. If a long bake or tool interruption prevents this, call the migration partial and resume from that phase.
|
|
79
|
+
6. A representative scene has been opened or selected deliberately before migration validation; do not infer baked-lighting or PPv2 absence from a default/test scene. The scene has been captured or inspected after saving/reloading, and Console output has been checked for render-pipeline, shader, or renderer-feature errors.
|
|
80
|
+
7. Final wording must match the gate result. Use "complete" only when every gate passes. Use "partial" when URP is set up but PPv2 Volume persistence, legacy PPv2 disablement, lighting bake/probe refresh, or saved-state validation remains. Do not start the final response with "successfully migrated" if any required gate is partial.
|
|
81
|
+
|
|
82
|
+
Complete-report checklist:
|
|
83
|
+
|
|
84
|
+
- If the old PPv2 profile contains active `DepthOfField`, the new URP profile must contain a saved `DepthOfField` override or the final report must call it omitted/manual.
|
|
85
|
+
- If the old PPv2 profile contains active `AmbientOcclusion`, configure a URP SSAO renderer feature when feasible, or mark AO as manual/partial.
|
|
86
|
+
- If the old PPv2 profile contains active `ScreenSpaceReflections`, list SSR as unsupported/manual unless a URP renderer-feature/custom replacement was actually added and validated.
|
|
87
|
+
- If the scene still serializes the old Lighting Settings GUID or a non-zero old `m_LightingDataAsset`, lighting is partial.
|
|
88
|
+
- If the scene has reflection probes and the URP asset still serializes `m_ReflectionProbeBlending: 0` or `m_ReflectionProbeBoxProjection: 0`, reflections are partial unless intentionally disabled and reported.
|
|
89
|
+
- If any checklist item is false, do not use "complete", "fully migrated", or "fully functional on URP" in the final answer.
|
|
90
|
+
|
|
91
|
+
Unsupported features can remain manual, but name them precisely. Examples include PPv2 Screen Space Reflections needing a URP renderer-feature/custom/third-party replacement, complex custom shader ports, `GrabPass`, replacement shaders, or package-owned rendering code. If any success-gate item fails, continue repairing when allowed or report a partial migration with incomplete items; do not present the project as fully migrated.
|
|
92
|
+
|
|
93
|
+
Regression guard summary:
|
|
94
|
+
|
|
95
|
+
- Use the detailed [Execution Regression Checklist](implementation-patterns.md#execution-regression-checklist) for actual migration or repair work.
|
|
96
|
+
- Verify saved scene references before status claims: URP Volume/profile, Quality assignments, Lighting Settings/Data, URP asset/renderer, and reflection-probe settings.
|
|
97
|
+
- Preserve material source data from a pre-conversion snapshot, then restore `_BaseMap`, `_BaseColor`, texture scale/offsets, and relevant maps after shader changes.
|
|
98
|
+
- Validate representative visuals for PPv2, foliage, particles/effects, baked lighting, probes, and exposure before final wording.
|
|
99
|
+
- Report exact phase status. `Phase complete` is allowed for a passed phase; project-level `complete` is allowed only when every success gate passes.
|
|
100
|
+
# 0. Pre-Flight: Pipeline Detection and Reference Loading
|
|
101
|
+
|
|
102
|
+
Before doing anything else, you **must determine the active render pipeline and migration mode**:
|
|
103
|
+
|
|
104
|
+
1. **Detect Pipeline:** Run the render-pipeline detection snippet from the execution-path section above.
|
|
105
|
+
- If `currentRenderPipeline` or `defaultRenderPipelineAsset` references a `UniversalRenderPipelineAsset` -> **URP**.
|
|
106
|
+
- If no render pipeline asset is assigned -> **Built-in**.
|
|
107
|
+
- If it references an `HDRenderPipelineAsset` -> **HDRP**. Explain that this skill only covers Built-in to URP migration. Basic comparison advice is fine, but do not drive an HDRP migration with this skill.
|
|
108
|
+
2. **Load Base Reference:** Read [references/migration-workflow.md](migration-workflow.md).
|
|
109
|
+
3. **Load Shader References When Relevant:** If the request mentions materials, shaders, magenta materials, rendering errors, image effects, or custom rendering, also read:
|
|
110
|
+
- [references/custom-shader-triage.md](custom-shader-triage.md)
|
|
111
|
+
- [references/complex-shader-situations.md](complex-shader-situations.md) when inspection or project-file search finds advanced shader/effect patterns
|
|
112
|
+
4. **Load Quality Reference When Relevant:** If the request mentions shadows, lighting, baked lighting, lightmaps, reflection probes, quality settings, visual mismatch, or performance after migration, also read [references/quality-settings-map.md](quality-settings-map.md).
|
|
113
|
+
5. **Load Implementation Patterns When Executing:** If the request permits actual migration changes, post-processing conversion, baked-lighting/probe repair, or resume from a partial migration, also read [references/implementation-patterns.md](implementation-patterns.md).
|
|
114
|
+
6. **Classify the Request** as one of:
|
|
115
|
+
- Full-project Built-in to URP migration
|
|
116
|
+
- Built-in 2D to URP 2D migration
|
|
117
|
+
- Selected material-only conversion
|
|
118
|
+
- Planning / explanation only
|
|
119
|
+
- Troubleshooting after a previous migration
|
|
120
|
+
7. **If the project is already on URP,** switch to troubleshooting mode instead of re-running setup blindly.
|
|
121
|
+
8. **Proceed** only after the pipeline and migration path are clear.
|
|
122
|
+
# 1. Assess Current Migration State
|
|
123
|
+
|
|
124
|
+
Before making any changes, **inspect what already exists**:
|
|
125
|
+
|
|
126
|
+
1. **Inspect pipeline state and assignment points:**
|
|
127
|
+
- Run both render-pipeline detection snippets from the execution-path section above — the Graphics-settings one and the per-quality-level one.
|
|
128
|
+
- If the project has Quality levels, inspect which Render Pipeline Asset each level uses before assuming the project is fully switched.
|
|
129
|
+
2. **Inventory migration surfaces:** Use `script eval` with `UnityEditor.AssetDatabase.FindAssets` or equivalent asset queries to inventory:
|
|
130
|
+
- materials, including particle/VFX materials that often use built-in particle shaders
|
|
131
|
+
- vegetation materials, including grass, tree, terrain-detail, SpeedTree, billboard, leaf-card, cutout, and wind-driven foliage materials
|
|
132
|
+
- shaders
|
|
133
|
+
- scenes and important prefabs
|
|
134
|
+
- URP assets and renderer assets, if any
|
|
135
|
+
- post-processing profiles / volume profiles
|
|
136
|
+
- Lighting Settings assets, Lighting Data assets, lightmaps, light probes, reflection probes, and mixed/baked lights
|
|
137
|
+
3. **Scan for rendering risk markers:** Use available project-file search, `AssetDatabase.FindAssets`, or a short `script eval` file scan to search the project for rendering-specific patterns such as:
|
|
138
|
+
- `PostProcessLayer`, `PostProcessVolume`, `UnityEngine.Rendering.PostProcessing`
|
|
139
|
+
- `OnRenderImage(`, `RenderWithShader`, `SetReplacementShader`
|
|
140
|
+
- `#pragma surface`, `GrabPass`, `CGPROGRAM`
|
|
141
|
+
- `CommandBuffer`, custom shader include paths, or package shader namespaces
|
|
142
|
+
- vegetation markers such as `Nature/`, `SpeedTree`, `TreeCreator`, `Grass`, `Foliage`, `_Cutoff`, `_AlphaClip`, `_Cull`, billboard, or wind keywords
|
|
143
|
+
4. **If PPv2 is installed but grep finds nothing,** inspect open scenes and profile assets through Unity APIs by component/type. Scene YAML and serialized package references can be missed by text search.
|
|
144
|
+
5. **Determine project shape:** Decide whether the project is primarily 3D, primarily 2D, or mixed.
|
|
145
|
+
6. **Report Findings:** Summarize the current state before proposing conversion. Example:
|
|
146
|
+
- "The project is still on Built-in, has no URP asset assigned, contains PPv2 references, and includes several custom shaders using surface-shader syntax."
|
|
147
|
+
# 2. Gather Requirements
|
|
148
|
+
|
|
149
|
+
Determine what the user actually wants. If the request is ambiguous, ask.
|
|
150
|
+
|
|
151
|
+
Use these defaults for common requests:
|
|
152
|
+
|
|
153
|
+
| User says | Default interpretation |
|
|
154
|
+
|-----------|------------------------|
|
|
155
|
+
| "Upgrade this project to URP" | Full-project migration |
|
|
156
|
+
| "Move this 2D project to URP" | Built-in 2D to URP 2D migration |
|
|
157
|
+
| "Convert these materials" | Targeted material conversion |
|
|
158
|
+
| "My materials turned pink" | Post-migration shader/material troubleshooting |
|
|
159
|
+
| "Lighting looks wrong after URP" | Quality and visual parity troubleshooting |
|
|
160
|
+
| "Do not change anything yet" | Planning / audit only |
|
|
161
|
+
|
|
162
|
+
## Information to Gather
|
|
163
|
+
|
|
164
|
+
- **Scope:** full project, selected materials, or troubleshooting only
|
|
165
|
+
- **Target renderer:** standard URP or URP 2D
|
|
166
|
+
- **Validation targets:** which scenes, prefabs, or cameras matter most to the user
|
|
167
|
+
- **Risk tolerance:** whether limited manual follow-up is acceptable
|
|
168
|
+
- **Rendering dependencies:** custom shaders, Asset Store shaders, PPv2, baked lighting/lightmaps/probes, image effects, command buffers, replacement shaders, or multiple Quality levels
|
|
169
|
+
- **Execution permission:** planning only vs actual project changes
|
|
170
|
+
# 3. Safety Gate
|
|
171
|
+
|
|
172
|
+
Before any pipeline-mutating step:
|
|
173
|
+
|
|
174
|
+
1. **Confirm rollback safety.**
|
|
175
|
+
- NEVER install URP, assign a URP asset, run the Render Pipeline Converter, edit materials, or edit migration scene state before the user confirms a backup, branch, archive, disposable copy, or rollback point.
|
|
176
|
+
- If rollback safety is missing, do not partially switch the project to URP. Stop in planning mode and ask for the rollback confirmation first.
|
|
177
|
+
2. **Separate engine-upgrade risk from pipeline-upgrade risk.**
|
|
178
|
+
- If the project is also moving to a new Unity version, recommend doing the engine upgrade first and the pipeline migration second. Do not treat both as a single blind operation.
|
|
179
|
+
3. **If rollback safety is confirmed,** treat it as covering the whole migration pass. Do not ask again before each converter; proceed through setup, material conversion, PPv2 migration, lighting/probe work, save/reload verification, and final reporting unless a new risky decision appears.
|
|
180
|
+
4. **If the user already authorized a full disposable migration,** do not ask for permission to continue after routine setup or recoverable errors. Continue with the next incomplete migration phase. Ask only when a new destructive cleanup decision appears, a package/domain reload stops execution, or repeated repair attempts hit the validation iteration limit.
|
|
181
|
+
4. **If the project is already partially migrated,** identify whether rollback safety was previously confirmed. If yes, resume from the first incomplete item. If no, report the partial state and ask before making additional changes.
|
|
182
|
+
# 5. URP Setup Workflow
|
|
183
|
+
|
|
184
|
+
Follow this exact setup order:
|
|
185
|
+
|
|
186
|
+
1. **Ensure URP is installed.**
|
|
187
|
+
- Installing URP can trigger package refresh, compilation, and domain reload. Treat this as a phase boundary.
|
|
188
|
+
- Do not spin-wait indefinitely inside an `script eval` call on `UnityEditor.PackageManager.Client.Add`. Request installation, then verify through `Packages/manifest.json`, package listing, or the presence of URP types/assets after Unity finishes refreshing.
|
|
189
|
+
- If the package install causes the `script eval` call to time out or return nothing, resume in a fresh turn after Unity finishes compiling. Do not restart the whole migration or reinstall URP; inspect the partial state and continue from there.
|
|
190
|
+
2. **Create the required URP asset and renderer asset** if they do not already exist.
|
|
191
|
+
3. **Assign the URP asset in Graphics settings** and in all relevant Quality levels.
|
|
192
|
+
4. **For 2D projects,** create and assign the correct 2D Renderer asset before conversion.
|
|
193
|
+
5. **If a URP asset already exists,** inspect and reuse it when appropriate instead of creating duplicates automatically.
|
|
194
|
+
6. **Do not continue** until URP is actually the active render pipeline for the target configuration.
|
|
195
|
+
|