@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,80 @@
|
|
|
1
|
+
# Collision callback checklist
|
|
2
|
+
|
|
3
|
+
Work through these steps when `OnCollisionEnter`, `OnCollisionStay`, or `OnCollisionExit` doesn't fire, or objects pass through each other. Stop at the first step that confirms the cause. Replace `<VERSION>` in links with the project's Unity major.minor version, for example `6000.3`.
|
|
4
|
+
|
|
5
|
+
If no step confirms a cause, read [Introduction to collision](https://docs.unity.com/en-us/engine/<VERSION>/manual/physics-section/physics-overview/collision-section/colliders-overview.md) and [Introduction to rigid body physics](https://docs.unity.com/en-us/engine/<VERSION>/manual/physics-section/physics-overview/rigidbody/rigidbodies-overview.md) for the wider picture, then try the collision debugger listed in the skill.
|
|
6
|
+
|
|
7
|
+
- Step 1: Rigidbody and body types
|
|
8
|
+
- Step 2: Project-wide physics settings
|
|
9
|
+
- Step 3: Layers
|
|
10
|
+
- Step 4: `isTrigger` mismatch
|
|
11
|
+
- Step 5: Collider enabled and active
|
|
12
|
+
- Step 6: Script location and signature
|
|
13
|
+
- Step 7: MeshCollider rules
|
|
14
|
+
- Step 8: Non-uniform scale
|
|
15
|
+
- Step 9: Child Rigidbody breaking the compound
|
|
16
|
+
- Step 10: Tunneling
|
|
17
|
+
- Step 11: Overlapping colliders at simulation start
|
|
18
|
+
- Investigation hygiene
|
|
19
|
+
|
|
20
|
+
## Step 1: Rigidbody and body types
|
|
21
|
+
|
|
22
|
+
Read [Interaction between collider types](https://docs.unity.com/en-us/engine/<VERSION>/manual/physics-section/physics-overview/collision-section/collider-interactions/collider-types-interaction.md) for which pairs send collision messages. Check both GameObjects and their parents for a `Rigidbody` (not `Rigidbody2D`), because a Rigidbody on a parent owns the child colliders.
|
|
23
|
+
|
|
24
|
+
If the moving object has a `CharacterController`, apply the CharacterController Fast-Path in the skill instead.
|
|
25
|
+
|
|
26
|
+
If both bodies are kinematic, or one is kinematic and the other static, recommend making the moving body dynamic, because a kinematic body is never pushed back by the contact. Otherwise, if the body must stay kinematic, set **Contact Pairs Mode** to the value the pair needs, as listed in the skill's CRITICAL FACT.
|
|
27
|
+
|
|
28
|
+
## Step 2: Project-wide physics settings
|
|
29
|
+
|
|
30
|
+
If you can read the project files, read `ProjectSettings/DynamicsManager.asset`. Otherwise, ask the user to check **Edit > Project Settings > Physics**. Check these settings against the [Physics settings](https://docs.unity.com/en-us/engine/<VERSION>/manual/unity-editor/editor-settings-reference/comp-manager-group/class-physics-manager.md) page, because each one can stop every collision callback in the project:
|
|
31
|
+
|
|
32
|
+
- **Invoke Collision Callbacks** (`m_InvokeCollisionCallbacks`) is off.
|
|
33
|
+
- **Simulation Mode** (`m_SimulationMode`) is **Script**.
|
|
34
|
+
- **GameObject SDK** is **None**.
|
|
35
|
+
|
|
36
|
+
## Step 3: Layers
|
|
37
|
+
|
|
38
|
+
Read [Layer-based collision detection](https://docs.unity.com/en-us/engine/<VERSION>/manual/physics-section/physics-overview/collision-section/collision-detection/layer-based-collision.md). Check that the Layer Collision Matrix allows the two layers to collide, and check the **Layer Overrides** (Include Layers, Exclude Layers) on each Collider and Rigidbody, because they take priority over the matrix. State the diagnosis directly, without running C# to list layers.
|
|
39
|
+
|
|
40
|
+
To stop specific layers colliding, use the Layer Collision Matrix, not `Physics.IgnoreLayerCollision`, because the call affects every object on both layers and persists across scene loads. `Physics.IgnoreCollision` is stored on the Collider instance, so call it again in `OnEnable` for every pooled or newly instantiated object.
|
|
41
|
+
|
|
42
|
+
## Step 4: `isTrigger` mismatch
|
|
43
|
+
|
|
44
|
+
Check that neither collider has **Is Trigger** on, as described in [OnCollision events](https://docs.unity.com/en-us/engine/<VERSION>/manual/physics-section/physics-overview/collision-section/collider-interactions/oncollision.md).
|
|
45
|
+
|
|
46
|
+
## Step 5: Collider enabled and active
|
|
47
|
+
|
|
48
|
+
Check that both Colliders are enabled and their GameObjects are active in the hierarchy, because Unity ignores disabled colliders without an error.
|
|
49
|
+
|
|
50
|
+
## Step 6: Script location and signature
|
|
51
|
+
|
|
52
|
+
The script must be on the GameObject that owns the Collider or its Rigidbody. Use `OnCollisionEnter(Collision collision)`: a `2D` suffix or a `Collision2D` parameter compiles but is never called in 3D physics.
|
|
53
|
+
|
|
54
|
+
## Step 7: MeshCollider rules
|
|
55
|
+
|
|
56
|
+
Read [Configure Rigidbody colliders](https://docs.unity.com/en-us/engine/<VERSION>/manual/physics-section/physics-overview/rigidbody/rigidbody-configure-colliders.md) and [Introduction to Mesh colliders](https://docs.unity.com/en-us/engine/<VERSION>/manual/physics-section/physics-overview/collision-section/collider-shapes/mesh-colliders/introduction.md), and ask the user for Console errors that mention the mesh. If the error matches a row in the skill's Console errors table, apply the fix in that row. A non-convex MeshCollider on static geometry needs no fix.
|
|
57
|
+
|
|
58
|
+
## Step 8: Non-uniform scale
|
|
59
|
+
|
|
60
|
+
If a parent has non-uniform scale, read the non-uniform scaling section of [Transform](https://docs.unity.com/en-us/engine/<VERSION>/manual/working-with-gameobjects/gameobject-fundamentals/class-transform.md), because it distorts child primitive colliders while the mesh looks correct. Apply the scale in the modelling tool before export, so the model imports at `(1, 1, 1)`.
|
|
61
|
+
|
|
62
|
+
## Step 9: Child Rigidbody breaking the compound
|
|
63
|
+
|
|
64
|
+
Search the hierarchy for Rigidbody components below the root body, and remove unintended ones, because they split the compound body. For details, read [Introduction to compound colliders](https://docs.unity.com/en-us/engine/<VERSION>/manual/physics-section/physics-overview/collision-section/collider-shapes/compound-colliders/introduction.md).
|
|
65
|
+
|
|
66
|
+
## Step 10: Tunneling
|
|
67
|
+
|
|
68
|
+
Intermittent callbacks on fast objects mean tunneling. Read [Choose a collision detection mode](https://docs.unity.com/en-us/engine/<VERSION>/manual/physics-section/physics-overview/collision-section/collision-detection/choose-collision-detection-mode.md) before picking a mode, and again if the object still tunnels.
|
|
69
|
+
|
|
70
|
+
1. Set **Rigidbody > Collision Detection** to `Continuous Speculative` as the default. Otherwise, if two fast dynamic Rigidbodies still pass through each other, use `Continuous Dynamic`.
|
|
71
|
+
2. Write the full mode name, because `Continuous` alone names a different mode.
|
|
72
|
+
3. For a bullet or projectile, also mention [`Physics.SphereCast`](https://docs.unity.com/en-us/engine/<VERSION>/script-reference/unityengine/physics/spherecast.md) along the trajectory each frame.
|
|
73
|
+
|
|
74
|
+
## Step 11: Overlapping colliders at simulation start
|
|
75
|
+
|
|
76
|
+
If colliders overlap when they're spawned or enabled, read [Ragdoll stability](https://docs.unity.com/en-us/engine/<VERSION>/manual/physics-section/physics-overview/ragdoll/ragdoll-stability.md) and apply the ragdoll Fast-Path in the skill: move or shrink the colliders so none overlap at the start.
|
|
77
|
+
|
|
78
|
+
## Investigation hygiene
|
|
79
|
+
|
|
80
|
+
If you change a project setting to reproduce or verify a cause, such as Queries Hit Triggers or the Layer Collision Matrix, record the original value and restore it before you finish, because the user didn't ask for that change.
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# Record contacts with CollisionDebugger
|
|
2
|
+
|
|
3
|
+
Use `scripts/CollisionDebugger.cs` (the path is relative to this skill's root folder) to see which contacts the physics engine reports, without adding components to the scene or saving changes to it. It's an Editor script that reads `Physics.ContactEvent`, so it records contacts even where no `OnCollisionEnter` script exists. Every line it logs starts with `[CollisionDebugger]`.
|
|
4
|
+
|
|
5
|
+
1. Copy the script to `Assets/Editor/CollisionDebugger.cs` in the user's project, and wait for the Editor to compile it with zero console errors.
|
|
6
|
+
2. In Edit mode, start tracking the GameObjects in the suspect pair by name, for example `unity command script eval --caller plugin --skill fix-3d-physics-collisions --code 'CollisionDebugger.Track("Bullet", "Wall");'`.
|
|
7
|
+
3. Enter Play mode, reproduce the problem, then exit Play mode. The debugger logs a summary and switches itself off when Play mode ends.
|
|
8
|
+
4. Read the console lines that start with `[CollisionDebugger]`, and compare them with the table below.
|
|
9
|
+
5. Delete `Assets/Editor/CollisionDebugger.cs` and its `.meta` file.
|
|
10
|
+
|
|
11
|
+
| Console output | Diagnosis |
|
|
12
|
+
|---|---|
|
|
13
|
+
| `Setup` report | Lists the Physics settings from `DynamicsManager.asset`, and the layers, triggers, body types, and layer overrides of the tracked objects. Check these settings first, because a wrong layer, trigger, or body type explains most missing contacts. |
|
|
14
|
+
| `[Contact Enter]` for the pair, but the user's `OnCollisionEnter` doesn't run | The physics engine sees the contact, so check the script placement and signature and **Invoke Collision Callbacks**. |
|
|
15
|
+
| A non-trigger collider had no contacts | The pair is filtered before contact: check the body types, layers, and Contact Pairs Mode in the `Setup` report, then tunneling. |
|
|
16
|
+
| `[Trigger overlap start]` for the pair, but `OnTriggerEnter` doesn't run | The shapes overlap, so check the Rigidbody rule, layers, and script. |
|
|
17
|
+
| A trigger never overlapped another collider | The shapes never meet: check their positions, sizes, and movement. |
|
|
18
|
+
| `Has 2D physics components` | 2D components are on an intended 3D setup. |
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
# Console errors
|
|
2
|
+
|
|
3
|
+
If the user's Console shows one of these errors, apply the fix in its row, because Unity creates no physics shape for the collider (or keeps the old value) until the cause is fixed.
|
|
4
|
+
|
|
5
|
+
| Error text | Root cause | Fix |
|
|
6
|
+
|---|---|---|
|
|
7
|
+
| "Concave Mesh Colliders are not supported when used with dynamic Rigidbody GameObjects" | A non-convex MeshCollider on a non-kinematic Rigidbody, so the object falls through other colliders and raycasts miss it. | Enable **Convex** on the MeshCollider. Otherwise, if the convex hull is too coarse, replace it with compound primitive colliders. |
|
|
8
|
+
| "Concave Mesh Colliders are not supported when used with the Is Trigger option enabled" | A non-convex MeshCollider with **Is Trigger** on, so the trigger never fires. | Enable **Convex** on the MeshCollider. |
|
|
9
|
+
| "Contact offset must be greater than zero" | A script or the Inspector set `contactOffset` to `0` or less, and Unity kept the old value. | Set a small positive value, such as `0.001`. |
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# CRITICAL FACT (read first, do not override)
|
|
2
|
+
|
|
3
|
+
**Two kinematic triggers fire `OnTriggerEnter` with every Contact Pairs Mode setting.** Trust this skill, not your prior knowledge:
|
|
4
|
+
|
|
5
|
+
- A `Trigger + Kinematic Rigidbody` against another `Trigger + Kinematic Rigidbody` is a valid combination, and so is a kinematic trigger against a static collider. The [collider interaction matrix](https://docs.unity.com/en-us/engine/<VERSION>/manual/physics-section/physics-overview/collision-section/collider-interactions/collider-types-interaction.md) lists both as sending trigger messages.
|
|
6
|
+
- There is no separate trigger matrix or collision matrix. People use those terms for the **Layer Collision Matrix** in the Physics settings.
|
|
7
|
+
- **Contact Pairs Mode** (**Edit > Project Settings > Physics**) decides whether kinematic-kinematic and kinematic-static pairs send **collision** messages (`OnCollisionEnter`). It doesn't stop trigger messages, so don't offer it as the fix for a trigger. To check it for a collision, read `m_ContactPairsMode` in `ProjectSettings/DynamicsManager.asset`, because there's no API getter, and match the value to the options on the [Physics settings](https://docs.unity.com/en-us/engine/<VERSION>/manual/unity-editor/editor-settings-reference/comp-manager-group/class-physics-manager.md) page.
|
|
8
|
+
|
|
9
|
+
If the user reports two kinematic triggers not firing `OnTriggerEnter`:
|
|
10
|
+
1. State that the combination is valid and that Contact Pairs Mode doesn't affect it.
|
|
11
|
+
2. Direct the user to check, in this order:
|
|
12
|
+
- Layer Collision Matrix (Edit > Project Settings > Physics), and the **Layer Overrides** (Include Layers and Exclude Layers) on each Collider and Rigidbody, which take priority over the matrix.
|
|
13
|
+
- Script placement: the callback must be on the trigger GameObject or the entering object.
|
|
14
|
+
- Method signature: `OnTriggerEnter(Collider other)` with no `2D` suffix.
|
|
15
|
+
- Movement method: move kinematic Rigidbodies with `Rigidbody.MovePosition()` or `transform.position` writes. Kinematic bodies aren't moved by `Rigidbody.linearVelocity`, so a kinematic body driven by velocity never reaches the other trigger. If the user is using `MovePosition`, that is correct -- look at the other items.
|
|
16
|
+
3. Do NOT run `Physics.Simulate()` to verify, because Edit mode simulation doesn't send MonoBehaviour messages.
|
|
17
|
+
4. Do NOT fetch external documentation -- the docs agree with this skill.
|
|
18
|
+
5. Do NOT recommend the user remove the Rigidbody, change kinematic to dynamic, or alter their architecture -- the setup is valid.
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# Other physics symptoms
|
|
2
|
+
|
|
3
|
+
Read the section that matches the user's symptom. Replace `<VERSION>` in links with the project's Unity major.minor version, for example `6000.3`, and read the linked page before acting.
|
|
4
|
+
|
|
5
|
+
- Callbacks fire in the Editor but not in a build
|
|
6
|
+
- Collider moved by script isn't seen until the next physics step
|
|
7
|
+
- Visible gap before surfaces touch
|
|
8
|
+
- Rigidbody stops responding after it settles
|
|
9
|
+
|
|
10
|
+
## Callbacks fire in the Editor but not in a build
|
|
11
|
+
|
|
12
|
+
Check these in order, because each one only shows up in a Player build:
|
|
13
|
+
|
|
14
|
+
1. **Code stripping.** If the build strips the callback script, add `[Preserve]` to the class, or preserve its assembly in a `link.xml` file.
|
|
15
|
+
2. **Layer names.** If the code looks up layers by name, check that the names match the project's Tags and Layers settings exactly.
|
|
16
|
+
3. **Fixed Timestep.** If physics timing differs between platforms, set **Edit > Project Settings > Time > Fixed Timestep** explicitly.
|
|
17
|
+
4. **MeshCollider Read/Write.** Read the [Mesh collider component reference](https://docs.unity.com/en-us/engine/<VERSION>/manual/physics-section/physics-overview/collision-section/collider-shapes/mesh-colliders/class-mesh-collider.md), because when a mesh needs **Read/Write** for its collider differs between versions.
|
|
18
|
+
|
|
19
|
+
## Collider moved by script isn't seen until the next physics step
|
|
20
|
+
|
|
21
|
+
Read [Physics.SyncTransforms](https://docs.unity.com/en-us/engine/<VERSION>/script-reference/unityengine/physics/synctransforms.md). Recommend `Rigidbody.MovePosition` instead of writing `transform.position`. Only if a same-frame query must see a position written by a script, call `Physics.SyncTransforms()` once after the write, not every frame, because it's expensive.
|
|
22
|
+
|
|
23
|
+
## Visible gap before surfaces touch
|
|
24
|
+
|
|
25
|
+
The gap is the collider's contact offset. Read [Collider.contactOffset](https://docs.unity.com/en-us/engine/<VERSION>/script-reference/unityengine/collider/contactoffset.md). Lower the offset on the affected colliders. Otherwise, if the gap must stay for stable contacts, move the visual mesh slightly inside the collider. Keep the offset above `0`, because Unity rejects `0` or less with an error listed in the skill's Console errors table and keeps the old value.
|
|
26
|
+
|
|
27
|
+
## Rigidbody stops responding after it settles
|
|
28
|
+
|
|
29
|
+
Read [Rigidbody sleeping](https://docs.unity.com/en-us/engine/<VERSION>/manual/physics-section/physics-overview/physics-optimization/cpu/rigidbody-sleeping.md). Call [`Rigidbody.WakeUp()`](https://docs.unity.com/en-us/engine/<VERSION>/script-reference/unityengine/rigidbody/wakeup.md) before applying the force. Only if the object must never sleep, set its `sleepThreshold` to `0`.
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
# Raycast checklist
|
|
2
|
+
|
|
3
|
+
Work through these steps when `Physics.Raycast` doesn't hit an object and no raycast Fast-Path in the skill matched. Stop at the first step that confirms the cause. Replace `<VERSION>` in links with the project's Unity major.minor version, for example `6000.3`, and read the [Physics.Raycast](https://docs.unity.com/en-us/engine/<VERSION>/script-reference/unityengine/physics/raycast.md) page before changing the call.
|
|
4
|
+
|
|
5
|
+
1. **LayerMask.** If the call passes a `layerMask`, check that it includes the target layer. Build the mask with `LayerMask.GetMask("LayerName")`, because a hand-written bit mask is easy to get wrong.
|
|
6
|
+
2. **Non-convex MeshCollider on a dynamic Rigidbody.** If the Console shows the dynamic Rigidbody error in the skill's Console errors table, apply the fix in that row.
|
|
7
|
+
3. **Back faces.** If the ray reaches a MeshCollider from behind, read the mesh face direction section of [Introduction to Mesh colliders](https://docs.unity.com/en-us/engine/<VERSION>/manual/physics-section/physics-overview/collision-section/collider-shapes/mesh-colliders/introduction.md), and move the ray origin to the outward side of the mesh. Only enable **Queries Hit Backfaces** if the ray must start inside a hollow mesh, because it changes every query in the project.
|
|
8
|
+
4. **UI targets.** If the target is a UI Canvas element, use the UI's `GraphicRaycaster`, because `Physics.Raycast` only hits colliders.
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# Full topic map
|
|
2
|
+
|
|
3
|
+
Before you go forward with a workflow or diagnosis:
|
|
4
|
+
|
|
5
|
+
1. Open and read the [documentation page(s)](#full-topic-map) that cover the specific subject related to what you intend to do or fix and check if you've missed anything.
|
|
6
|
+
2. Name the file(s) you read in your response.
|
|
7
|
+
|
|
8
|
+
This is because your training knowledge about Unity might be out of date, incorrect, or for the wrong Unity version.
|
|
9
|
+
|
|
10
|
+
If the prompt matches a [STOP CHECK](../SKILL.md#stop-check----match-before-any-tool-call) Fast-Path, skip this reading, because the Fast-Path answer is the complete response and already agrees with these pages.
|
|
11
|
+
|
|
12
|
+
If the Editor install folder has a `Data/Documentation` folder (eg `...Unity/Hub/Editor/6000.6.0b2/Editor/Data/Documentation`), read the html files from the `<editor-install>/Editor/Data/Documentation/en/Manual` folder. Otherwise the docs pages are online at `https://docs.unity.com/en-us/engine/<VERSION>/manual/`.
|
|
13
|
+
|
|
14
|
+
- Links inside the pages start with `/engine/`. Add `https://docs.unity.com/en-us` before them.
|
|
15
|
+
- If the page doesn't exist for that Unity version, use the `href` in the `xrefmap.yml` entry instead (e.g. `href: 'Rigidbody.AddForce.html'` => `https://docs.unity3d.com/<VERSION>/Documentation/ScriptReference/Rigidbody.AddForce.html`).
|
|
16
|
+
|
|
17
|
+
Prefer fetching the page directly (for example `WebFetch`) over searching (for example `WebSearch`) — faster and lands on the exact reference. Only fetch what you need, and only search if you don't have the exact URL.
|
|
18
|
+
|
|
19
|
+
Before the first fetch, read the Unity version from `ProjectSettings/ProjectVersion.txt`, because the docs differ between versions. Replace `<VERSION>` in docs.unity.com and docs.unity3d.com links with only its major.minor (the first two numbers), because the full build number gives a 404.
|
|
20
|
+
|
|
21
|
+
- [Interaction between collider types](https://docs.unity.com/en-us/engine/<VERSION>/manual/physics-section/physics-overview/collision-section/collider-interactions/collider-types-interaction.md) — local `collider-types-interaction.html`: which collider pairs send collision or trigger messages.
|
|
22
|
+
- [OnCollision events](https://docs.unity.com/en-us/engine/<VERSION>/manual/physics-section/physics-overview/collision-section/collider-interactions/oncollision.md) — local `collider-interactions-oncollision.html`: when Unity calls the OnCollisionEnter, Stay, and Exit events.
|
|
23
|
+
- [OnTrigger events](https://docs.unity.com/en-us/engine/<VERSION>/manual/physics-section/physics-overview/collision-section/collider-interactions/ontrigger.md) — local `collider-interactions-ontrigger.html`: how trigger colliders call OnTriggerEnter, Stay, and Exit.
|
|
24
|
+
- [Layer-based collision detection](https://docs.unity.com/en-us/engine/<VERSION>/manual/physics-section/physics-overview/collision-section/collision-detection/layer-based-collision.md) — local `LayerBasedCollision.html`: setting which layers collide in the Layer Collision Matrix.
|
|
25
|
+
- [Choose a collision detection mode](https://docs.unity.com/en-us/engine/<VERSION>/manual/physics-section/physics-overview/collision-section/collision-detection/choose-collision-detection-mode.md) — local `choose-collision-detection-mode.html`: picking Discrete or continuous detection for fast-moving objects.
|
|
26
|
+
- [Physics settings](https://docs.unity.com/en-us/engine/<VERSION>/manual/unity-editor/editor-settings-reference/comp-manager-group/class-physics-manager.md) — local `class-PhysicsManager.html`: project-wide settings such as Contact Pairs Mode, Queries Hit Triggers, Invoke Collision Callbacks, and Simulation Mode.
|
|
27
|
+
- [Mesh collider component reference](https://docs.unity.com/en-us/engine/<VERSION>/manual/physics-section/physics-overview/collision-section/collider-shapes/mesh-colliders/class-mesh-collider.md) — local `class-MeshCollider.html`: Mesh Collider properties, including Convex and mesh cooking options.
|
|
28
|
+
- [Character Controller component reference](https://docs.unity.com/en-us/engine/<VERSION>/manual/physics-section/physics-overview/character-control-section/class-character-controller.md) — local `class-CharacterController.html`: how a CharacterController moves and collides without a Rigidbody.
|
|
29
|
+
|
|
30
|
+
## API reference
|
|
31
|
+
|
|
32
|
+
The API is `UnityEngine.Physics`, `UnityEngine.Rigidbody`, `UnityEngine.Collider`, `UnityEngine.CharacterController`, and `UnityEngine.PhysicsScene`, part of the Unity Engine. It is versioned by Unity version, so check the project's Unity version before relying on a specific class or method.
|
|
33
|
+
|
|
34
|
+
1. Use the `unity-cli` skill to check the project's Unity version.
|
|
35
|
+
2. If the Editor install folder has a `Data/Documentation` folder, grep the html files in the `en/ScriptReference` folder inside, and skip the remaining steps.
|
|
36
|
+
3. Otherwise, fetch and cache `https://docs.unity3d.com/<VERSION>/Documentation/ScriptReference/xrefmap.yml`. This file lists every public API member's fully qualified name as a `uid` (e.g. `uid: 'UnityEngine.Rigidbody.AddForce(UnityEngine.Vector3)'`).
|
|
37
|
+
4. Grep the yml file locally for a class or method instead of refetching per lookup. The file is large (about 6 MB), so don't read the whole file.
|
|
38
|
+
5. Convert the `uid` to a markdown page: remove the parameters in brackets, lowercase it, replace `.` with `/`, and add `.md`. Then fetch `https://docs.unity.com/en-us/engine/<VERSION>/script-reference/<converted uid>`. For example, `UnityEngine.Rigidbody.AddForce(UnityEngine.Vector3)` => `https://docs.unity.com/en-us/engine/<VERSION>/script-reference/unityengine/rigidbody/addforce.md`. All overloads are on the same page.
|
|
39
|
+
- Constructors use `ctor` (e.g. `unityengine/vector3/ctor.md`), and indexers use `item` (e.g. `unityengine/vector3/item.md`).
|
|
40
|
+
- For operators, fetch the class page (e.g. `unityengine/vector3.md`) and follow its link.
|
|
41
|
+
|
|
42
|
+
Always use the docs for the project's Unity version rather than relying on training knowledge, since APIs are frequently marked obsolete between versions.
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
# Trigger callback checklist
|
|
2
|
+
|
|
3
|
+
Work through these steps when `OnTriggerEnter`, `OnTriggerStay`, or `OnTriggerExit` doesn't fire. Stop at the first step that confirms the cause. Replace `<VERSION>` in links with the project's Unity major.minor version, for example `6000.3`.
|
|
4
|
+
|
|
5
|
+
1. **Is Trigger and Rigidbody.** Read [OnTrigger events](https://docs.unity.com/en-us/engine/<VERSION>/manual/physics-section/physics-overview/collision-section/collider-interactions/ontrigger.md) and [Interaction between collider types](https://docs.unity.com/en-us/engine/<VERSION>/manual/physics-section/physics-overview/collision-section/collider-interactions/collider-types-interaction.md), and check the pair against them. If both are kinematic triggers, apply the skill's CRITICAL FACT instead.
|
|
6
|
+
2. **Layers.** Read [Layer-based collision detection](https://docs.unity.com/en-us/engine/<VERSION>/manual/physics-section/physics-overview/collision-section/collision-detection/layer-based-collision.md). Check the Layer Collision Matrix, and the **Layer Overrides** on each Collider and Rigidbody, because they take priority over the matrix.
|
|
7
|
+
3. **Signature.** Use `OnTriggerEnter(Collider other)`, because `OnTriggerEnter2D(Collider2D other)` is never called in 3D physics.
|
|
8
|
+
4. **Script location.** The script must be on the trigger GameObject or the entering object, not on an unrelated parent or manager.
|
|
9
|
+
5. **Non-convex MeshCollider trigger.** If the Console shows the trigger error in the skill's Console errors table, apply the fix in that row.
|