@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,191 @@
|
|
|
1
|
+
// [UNITY-SKILL:SPRITEATLAS]
|
|
2
|
+
using UnityEditor;
|
|
3
|
+
using UnityEditor.U2D;
|
|
4
|
+
using UnityEngine;
|
|
5
|
+
|
|
6
|
+
/// <summary>
|
|
7
|
+
/// Demonstrates optimizing texture settings for SpriteAtlases.
|
|
8
|
+
/// Proper texture settings are critical for performance and memory usage.
|
|
9
|
+
/// </summary>
|
|
10
|
+
public static class OptimizeTextureSettingsExample
|
|
11
|
+
{
|
|
12
|
+
/// <summary>
|
|
13
|
+
/// Configures optimal texture settings for UI atlases.
|
|
14
|
+
/// UI sprites typically need high quality and alpha channel.
|
|
15
|
+
/// </summary>
|
|
16
|
+
public static void ConfigureUITextureSettings(string atlasPath)
|
|
17
|
+
{
|
|
18
|
+
SpriteAtlasImporter importer = AssetImporter.GetAtPath(atlasPath) as SpriteAtlasImporter;
|
|
19
|
+
if (importer == null)
|
|
20
|
+
return;
|
|
21
|
+
|
|
22
|
+
// UI textures need good quality with alpha
|
|
23
|
+
var textureSettings = importer.textureSettings;
|
|
24
|
+
textureSettings.filterMode = FilterMode.Bilinear;
|
|
25
|
+
importer.textureSettings = textureSettings;
|
|
26
|
+
|
|
27
|
+
// Set appropriate format for UI (with alpha)
|
|
28
|
+
var platformSettings = importer.GetPlatformSettings("DefaultTexturePlatform");
|
|
29
|
+
platformSettings.maxTextureSize = 2048;
|
|
30
|
+
platformSettings.format = TextureImporterFormat.ASTC_6x6;
|
|
31
|
+
platformSettings.compressionQuality = 50;
|
|
32
|
+
importer.SetPlatformSettings(platformSettings);
|
|
33
|
+
|
|
34
|
+
importer.SaveAndReimport();
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/// <summary>
|
|
38
|
+
/// Configures optimal texture settings for game object atlases.
|
|
39
|
+
/// Game objects can use lower quality and don't always need alpha.
|
|
40
|
+
/// </summary>
|
|
41
|
+
public static void ConfigureGameObjectTextureSettings(string atlasPath)
|
|
42
|
+
{
|
|
43
|
+
SpriteAtlasImporter importer = AssetImporter.GetAtPath(atlasPath) as SpriteAtlasImporter;
|
|
44
|
+
if (importer == null)
|
|
45
|
+
return;
|
|
46
|
+
|
|
47
|
+
// Game object textures can use lower quality
|
|
48
|
+
var textureSettings = importer.textureSettings;
|
|
49
|
+
textureSettings.filterMode = FilterMode.Trilinear;
|
|
50
|
+
importer.textureSettings = textureSettings;
|
|
51
|
+
|
|
52
|
+
// Use DXT5 for desktop, ASTC for mobile
|
|
53
|
+
var platformSettings = importer.GetPlatformSettings("DefaultTexturePlatform");
|
|
54
|
+
platformSettings.maxTextureSize = 1024;
|
|
55
|
+
platformSettings.format = TextureImporterFormat.DXT5;
|
|
56
|
+
platformSettings.compressionQuality = 50;
|
|
57
|
+
importer.SetPlatformSettings(platformSettings);
|
|
58
|
+
|
|
59
|
+
importer.SaveAndReimport();
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
/// <summary>
|
|
63
|
+
/// Configures texture settings for a specific platform.
|
|
64
|
+
/// </summary>
|
|
65
|
+
public static void ConfigurePlatformTextureSettings(string atlasPath, string platformName, int maxTextureSize, TextureImporterFormat format)
|
|
66
|
+
{
|
|
67
|
+
SpriteAtlasImporter importer = AssetImporter.GetAtPath(atlasPath) as SpriteAtlasImporter;
|
|
68
|
+
if (importer == null)
|
|
69
|
+
return;
|
|
70
|
+
|
|
71
|
+
importer.SetPlatformSettings(new TextureImporterPlatformSettings
|
|
72
|
+
{
|
|
73
|
+
name = "DefaultTexturePlatform",
|
|
74
|
+
maxTextureSize = maxTextureSize,
|
|
75
|
+
format = format,
|
|
76
|
+
compressionQuality = 50
|
|
77
|
+
});
|
|
78
|
+
|
|
79
|
+
importer.SaveAndReimport();
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
/// <summary>
|
|
83
|
+
/// Optimizes texture settings for mobile platforms.
|
|
84
|
+
/// Focuses on reducing memory usage and improving loading times.
|
|
85
|
+
/// </summary>
|
|
86
|
+
public static void OptimizeForMobile(string atlasPath)
|
|
87
|
+
{
|
|
88
|
+
SpriteAtlasImporter importer = AssetImporter.GetAtPath(atlasPath) as SpriteAtlasImporter;
|
|
89
|
+
if (importer == null)
|
|
90
|
+
return;
|
|
91
|
+
|
|
92
|
+
// Android settings
|
|
93
|
+
importer.SetPlatformSettings(new TextureImporterPlatformSettings
|
|
94
|
+
{
|
|
95
|
+
name = "Android",
|
|
96
|
+
maxTextureSize = 1024,
|
|
97
|
+
format = TextureImporterFormat.ETC2_RGB4,
|
|
98
|
+
compressionQuality = 100,
|
|
99
|
+
});
|
|
100
|
+
|
|
101
|
+
// iOS settings
|
|
102
|
+
importer.SetPlatformSettings(new TextureImporterPlatformSettings
|
|
103
|
+
{
|
|
104
|
+
name = "iOS",
|
|
105
|
+
maxTextureSize = 1024,
|
|
106
|
+
format = TextureImporterFormat.ASTC_6x6,
|
|
107
|
+
compressionQuality = 100
|
|
108
|
+
});
|
|
109
|
+
|
|
110
|
+
importer.SaveAndReimport();
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
/// <summary>
|
|
114
|
+
/// Optimizes texture settings for web deployment.
|
|
115
|
+
/// Focuses on smaller file sizes and faster loading.
|
|
116
|
+
/// </summary>
|
|
117
|
+
public static void OptimizeForWeb(string atlasPath)
|
|
118
|
+
{
|
|
119
|
+
SpriteAtlasImporter importer = AssetImporter.GetAtPath(atlasPath) as SpriteAtlasImporter;
|
|
120
|
+
if (importer == null)
|
|
121
|
+
return;
|
|
122
|
+
|
|
123
|
+
importer.SetPlatformSettings(new TextureImporterPlatformSettings
|
|
124
|
+
{
|
|
125
|
+
name = "WebGL",
|
|
126
|
+
maxTextureSize = 1024,
|
|
127
|
+
format = TextureImporterFormat.DXT5Crunched,
|
|
128
|
+
compressionQuality = 100
|
|
129
|
+
});
|
|
130
|
+
|
|
131
|
+
importer.SaveAndReimport();
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
/// <summary>
|
|
136
|
+
/// Editor window for batch optimizing texture settings across multiple atlases.
|
|
137
|
+
/// </summary>
|
|
138
|
+
public class OptimizeTextureSettingsWindow : EditorWindow
|
|
139
|
+
{
|
|
140
|
+
private string _atlasFolder = "Assets/Atlases";
|
|
141
|
+
private bool _optimizeForMobile = false;
|
|
142
|
+
private bool _optimizeForWeb = false;
|
|
143
|
+
|
|
144
|
+
[MenuItem("Tools/Optimize Atlas Texture Settings")]
|
|
145
|
+
public static void ShowWindow()
|
|
146
|
+
{
|
|
147
|
+
GetWindow<OptimizeTextureSettingsWindow>("Optimize Atlases");
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
private void OnGUI()
|
|
151
|
+
{
|
|
152
|
+
EditorGUILayout.LabelField("Batch Optimize Texture Settings", EditorStyles.boldLabel);
|
|
153
|
+
|
|
154
|
+
_atlasFolder = EditorGUILayout.TextField("Atlas Folder", _atlasFolder);
|
|
155
|
+
_optimizeForMobile = EditorGUILayout.Toggle("Optimize for Mobile", _optimizeForMobile);
|
|
156
|
+
_optimizeForWeb = EditorGUILayout.Toggle("Optimize for Web", _optimizeForWeb);
|
|
157
|
+
|
|
158
|
+
if (GUILayout.Button("Optimize Atlases"))
|
|
159
|
+
{
|
|
160
|
+
BatchOptimize();
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
private void BatchOptimize()
|
|
165
|
+
{
|
|
166
|
+
string[] guids = AssetDatabase.FindAssets("t:SpriteAtlasAsset", new[] { _atlasFolder });
|
|
167
|
+
|
|
168
|
+
int processed = 0;
|
|
169
|
+
foreach (string guid in guids)
|
|
170
|
+
{
|
|
171
|
+
string path = AssetDatabase.GUIDToAssetPath(guid);
|
|
172
|
+
SpriteAtlasImporter importer = AssetImporter.GetAtPath(path) as SpriteAtlasImporter;
|
|
173
|
+
|
|
174
|
+
if (importer != null)
|
|
175
|
+
{
|
|
176
|
+
if (_optimizeForMobile)
|
|
177
|
+
{
|
|
178
|
+
OptimizeTextureSettingsExample.OptimizeForMobile(path);
|
|
179
|
+
}
|
|
180
|
+
else if (_optimizeForWeb)
|
|
181
|
+
{
|
|
182
|
+
OptimizeTextureSettingsExample.OptimizeForWeb(path);
|
|
183
|
+
}
|
|
184
|
+
processed++;
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
Debug.Log($"Optimized {processed} atlases");
|
|
189
|
+
AssetDatabase.Refresh();
|
|
190
|
+
}
|
|
191
|
+
}
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
// [UNITY-SKILL:SPRITEATLAS]
|
|
2
|
+
|
|
3
|
+
using System.Collections.Generic;
|
|
4
|
+
using UnityEditor.U2D;
|
|
5
|
+
using UnityEngine;
|
|
6
|
+
using Unity.Collections;
|
|
7
|
+
|
|
8
|
+
/// <summary>
|
|
9
|
+
/// Provides debugging utilities for custom packers.
|
|
10
|
+
/// Includes logging, validation, and diagnostics for packing operations.
|
|
11
|
+
/// </summary>
|
|
12
|
+
public static class PackerDebugging
|
|
13
|
+
{
|
|
14
|
+
/// <summary>
|
|
15
|
+
/// Logs detailed information about the packing operation.
|
|
16
|
+
/// Call this at the start of your Pack method for diagnostics.
|
|
17
|
+
/// </summary>
|
|
18
|
+
public static void LogPackingInfo(SpriteAtlasTextureSettings setting, SpriteAtlasPackingSettings config)
|
|
19
|
+
{
|
|
20
|
+
Debug.Log($"=== Packer Debug Info ===");
|
|
21
|
+
Debug.Log($"Atlas max size: {setting.maxTextureSize}");
|
|
22
|
+
Debug.Log($"Padding: {config.padding}");
|
|
23
|
+
Debug.Log($"Tight packing: {config.enableTightPacking}");
|
|
24
|
+
Debug.Log($"Enable rotation: {config.enableRotation}");
|
|
25
|
+
Debug.Log($"Enable alpha dilation: {config.enableAlphaDilation}");
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/// <summary>
|
|
29
|
+
/// Validates all sprite outputs after packing.
|
|
30
|
+
/// Returns false if any sprite has invalid output data.
|
|
31
|
+
/// </summary>
|
|
32
|
+
public static bool ValidateOutputs(ScriptablePacker.PackerData input)
|
|
33
|
+
{
|
|
34
|
+
NativeArray<ScriptablePacker.SpriteData> sprites = input.spriteData;
|
|
35
|
+
bool valid = true;
|
|
36
|
+
|
|
37
|
+
for (int i = 0; i < sprites.Length; i++)
|
|
38
|
+
{
|
|
39
|
+
ScriptablePacker.SpriteData sprite = sprites[i];
|
|
40
|
+
|
|
41
|
+
// Check bounds
|
|
42
|
+
if (sprite.output.x < 0 || sprite.output.y < 0)
|
|
43
|
+
{
|
|
44
|
+
Debug.LogError($"Sprite {i}: Invalid position ({sprite.output.x}, {sprite.output.y})");
|
|
45
|
+
valid = false;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
// Check page
|
|
49
|
+
if (sprite.output.page < 0)
|
|
50
|
+
{
|
|
51
|
+
Debug.LogError($"Sprite {i}: Invalid page {sprite.output.page}");
|
|
52
|
+
valid = false;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
return valid;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/// <summary>
|
|
60
|
+
/// Logs statistics about the packing operation.
|
|
61
|
+
/// </summary>
|
|
62
|
+
public static void LogPackingStats(ScriptablePacker.PackerData input, int totalPages)
|
|
63
|
+
{
|
|
64
|
+
NativeArray<ScriptablePacker.SpriteData> sprites = input.spriteData;
|
|
65
|
+
|
|
66
|
+
Debug.Log($"=== Packing Statistics ===");
|
|
67
|
+
Debug.Log($"Sprites packed: {sprites.Length}");
|
|
68
|
+
Debug.Log($"Total pages: {totalPages}");
|
|
69
|
+
|
|
70
|
+
// Count by page
|
|
71
|
+
var pageCounts = new System.Collections.Generic.Dictionary<int, int>();
|
|
72
|
+
foreach (var sprite in sprites)
|
|
73
|
+
{
|
|
74
|
+
int page = sprite.output.page;
|
|
75
|
+
pageCounts[page] = pageCounts.GetValueOrDefault(page) + 1;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
Debug.Log($"Sprites per page:");
|
|
79
|
+
foreach (var kvp in pageCounts)
|
|
80
|
+
{
|
|
81
|
+
Debug.Log($" Page {kvp.Key}: {kvp.Value} sprites");
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
/// <summary>
|
|
86
|
+
/// Logs sprite data for debugging.
|
|
87
|
+
/// </summary>
|
|
88
|
+
public static void LogSpriteData(ScriptablePacker.PackerData input, int spriteIndex)
|
|
89
|
+
{
|
|
90
|
+
NativeArray<ScriptablePacker.SpriteData> sprites = input.spriteData;
|
|
91
|
+
NativeArray<ScriptablePacker.TextureData> textures = input.textureData;
|
|
92
|
+
|
|
93
|
+
if (spriteIndex >= sprites.Length)
|
|
94
|
+
return;
|
|
95
|
+
|
|
96
|
+
ScriptablePacker.SpriteData sprite = sprites[spriteIndex];
|
|
97
|
+
ScriptablePacker.TextureData texture = textures[sprite.texIndex];
|
|
98
|
+
|
|
99
|
+
Debug.Log($"=== Sprite {spriteIndex} ===");
|
|
100
|
+
Debug.Log($"GUID: {sprite.guid}");
|
|
101
|
+
Debug.Log($"Texture index: {sprite.texIndex}");
|
|
102
|
+
Debug.Log($"Texture size: {texture.width}x{texture.height}");
|
|
103
|
+
Debug.Log($"Source rect: {sprite.rect}");
|
|
104
|
+
Debug.Log($"Output position: ({sprite.output.x}, {sprite.output.y})");
|
|
105
|
+
Debug.Log($"Output page: {sprite.output.page}");
|
|
106
|
+
Debug.Log($"Rotation: {sprite.output.rot}");
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
/// <summary>
|
|
111
|
+
/// Example packer with built-in debugging.
|
|
112
|
+
/// </summary>
|
|
113
|
+
public class DebuggableSpritePacker : ScriptablePacker
|
|
114
|
+
{
|
|
115
|
+
public bool enableDebugLogging = false;
|
|
116
|
+
|
|
117
|
+
public override bool Pack(SpriteAtlasPackingSettings config,
|
|
118
|
+
SpriteAtlasTextureSettings setting,
|
|
119
|
+
PackerData input)
|
|
120
|
+
{
|
|
121
|
+
if (enableDebugLogging)
|
|
122
|
+
{
|
|
123
|
+
PackerDebugging.LogPackingInfo(setting, config);
|
|
124
|
+
PackerDebugging.LogSpriteData(input, 0); // Log first sprite
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
// Your packing logic here...
|
|
128
|
+
PackDefault(input);
|
|
129
|
+
|
|
130
|
+
if (enableDebugLogging)
|
|
131
|
+
{
|
|
132
|
+
bool valid = PackerDebugging.ValidateOutputs(input);
|
|
133
|
+
PackerDebugging.LogPackingStats(input, 1); // Assuming single page
|
|
134
|
+
|
|
135
|
+
if (!valid)
|
|
136
|
+
{
|
|
137
|
+
Debug.LogError("Packing validation failed!");
|
|
138
|
+
return false;
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
return true;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
private void PackDefault(PackerData input)
|
|
146
|
+
{
|
|
147
|
+
NativeArray<SpriteData> sprites = input.spriteData;
|
|
148
|
+
for (int i = 0; i < sprites.Length; i++)
|
|
149
|
+
{
|
|
150
|
+
SpriteData sprite = sprites[i];
|
|
151
|
+
sprite.output.x = i * 100;
|
|
152
|
+
sprite.output.y = 0;
|
|
153
|
+
sprite.output.page = 0;
|
|
154
|
+
sprite.output.rot = PackTransform.None;
|
|
155
|
+
sprites[i] = sprite;
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
// [UNITY-SKILL:SPRITEATLAS]
|
|
2
|
+
using UnityEngine;
|
|
3
|
+
|
|
4
|
+
/// <summary>
|
|
5
|
+
/// Sprite transformation options during packing.
|
|
6
|
+
/// These transforms are applied to sprites when packing them into the atlas.
|
|
7
|
+
/// </summary>
|
|
8
|
+
public enum PackTransform
|
|
9
|
+
{
|
|
10
|
+
/// <summary>No transformation applied</summary>
|
|
11
|
+
None,
|
|
12
|
+
|
|
13
|
+
/// <summary>Flip horizontally</summary>
|
|
14
|
+
FlipHorizontal,
|
|
15
|
+
|
|
16
|
+
/// <summary>Flip vertically</summary>
|
|
17
|
+
FlipVertical,
|
|
18
|
+
|
|
19
|
+
/// <summary>Rotate 180 degrees</summary>
|
|
20
|
+
Rotate180
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
/// <summary>
|
|
24
|
+
/// Extension methods for PackTransform.
|
|
25
|
+
/// </summary>
|
|
26
|
+
public static class PackTransformExtensions
|
|
27
|
+
{
|
|
28
|
+
/// <summary>
|
|
29
|
+
/// Gets a human-readable name for the transform.
|
|
30
|
+
/// </summary>
|
|
31
|
+
public static string GetName(this PackTransform transform)
|
|
32
|
+
{
|
|
33
|
+
return transform.ToString();
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/// <summary>
|
|
37
|
+
/// Checks if the transform includes horizontal flipping.
|
|
38
|
+
/// </summary>
|
|
39
|
+
public static bool HasHorizontalFlip(this PackTransform transform)
|
|
40
|
+
{
|
|
41
|
+
return transform == PackTransform.FlipHorizontal;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/// <summary>
|
|
45
|
+
/// Checks if the transform includes vertical flipping.
|
|
46
|
+
/// </summary>
|
|
47
|
+
public static bool HasVerticalFlip(this PackTransform transform)
|
|
48
|
+
{
|
|
49
|
+
return transform == PackTransform.FlipVertical;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
// [UNITY-SKILL:SPRITEATLAS]
|
|
2
|
+
using UnityEditor;
|
|
3
|
+
using UnityEditor.U2D;
|
|
4
|
+
using UnityEngine;
|
|
5
|
+
|
|
6
|
+
/// <summary>
|
|
7
|
+
/// Demonstrates using correct platform names for SpriteAtlas configuration.
|
|
8
|
+
/// Platform names must match Unity's BuildTarget enum values.
|
|
9
|
+
/// </summary>
|
|
10
|
+
public static class PlatformNamesExample
|
|
11
|
+
{
|
|
12
|
+
/// <summary>
|
|
13
|
+
/// Gets the correct platform name string for a given BuildTarget.
|
|
14
|
+
/// </summary>
|
|
15
|
+
public static string GetPlatformName(BuildTarget target)
|
|
16
|
+
{
|
|
17
|
+
switch (target)
|
|
18
|
+
{
|
|
19
|
+
case BuildTarget.Android:
|
|
20
|
+
return "Android";
|
|
21
|
+
case BuildTarget.iOS:
|
|
22
|
+
return "iOS";
|
|
23
|
+
case BuildTarget.StandaloneWindows:
|
|
24
|
+
case BuildTarget.StandaloneWindows64:
|
|
25
|
+
return "Standalone";
|
|
26
|
+
case BuildTarget.StandaloneOSX:
|
|
27
|
+
return "Standalone";
|
|
28
|
+
case BuildTarget.StandaloneLinux64:
|
|
29
|
+
return "Standalone";
|
|
30
|
+
case BuildTarget.WebGL:
|
|
31
|
+
return "WebGL";
|
|
32
|
+
case BuildTarget.WSAPlayer:
|
|
33
|
+
return "WSA";
|
|
34
|
+
case BuildTarget.PS4:
|
|
35
|
+
return "PS4";
|
|
36
|
+
case BuildTarget.XboxOne:
|
|
37
|
+
return "XboxOne";
|
|
38
|
+
case BuildTarget.tvOS:
|
|
39
|
+
return "tvOS";
|
|
40
|
+
default:
|
|
41
|
+
Debug.LogWarning($"Unknown BuildTarget: {target}. Using 'Standalone'.");
|
|
42
|
+
return "Standalone";
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/// <summary>
|
|
47
|
+
/// Configures platform settings for multiple platforms using correct names.
|
|
48
|
+
/// </summary>
|
|
49
|
+
public static void ConfigurePlatformSettings(string atlasPath)
|
|
50
|
+
{
|
|
51
|
+
SpriteAtlasImporter importer = AssetImporter.GetAtPath(atlasPath) as SpriteAtlasImporter;
|
|
52
|
+
if (importer == null)
|
|
53
|
+
return;
|
|
54
|
+
|
|
55
|
+
// Mobile platform (Android/iOS)
|
|
56
|
+
importer.SetPlatformSettings(new TextureImporterPlatformSettings
|
|
57
|
+
{
|
|
58
|
+
name = "Android",
|
|
59
|
+
maxTextureSize = 1024,
|
|
60
|
+
format = TextureImporterFormat.ETC2_RGB4,
|
|
61
|
+
compressionQuality = 100
|
|
62
|
+
});
|
|
63
|
+
|
|
64
|
+
// IOS
|
|
65
|
+
importer.SetPlatformSettings(new TextureImporterPlatformSettings
|
|
66
|
+
{
|
|
67
|
+
name = "iOS",
|
|
68
|
+
maxTextureSize = 1024,
|
|
69
|
+
format = TextureImporterFormat.ASTC_6x6,
|
|
70
|
+
compressionQuality = 100
|
|
71
|
+
});
|
|
72
|
+
|
|
73
|
+
// Desktop platform (Windows/Mac/Linux)
|
|
74
|
+
importer.SetPlatformSettings(new TextureImporterPlatformSettings
|
|
75
|
+
{
|
|
76
|
+
name = "Standalone",
|
|
77
|
+
maxTextureSize = 1024,
|
|
78
|
+
format = TextureImporterFormat.DXT5,
|
|
79
|
+
compressionQuality = 100
|
|
80
|
+
});
|
|
81
|
+
|
|
82
|
+
// WebGL
|
|
83
|
+
importer.SetPlatformSettings(new TextureImporterPlatformSettings
|
|
84
|
+
{
|
|
85
|
+
name = "WebGL",
|
|
86
|
+
maxTextureSize = 1024,
|
|
87
|
+
format = TextureImporterFormat.DXT5Crunched,
|
|
88
|
+
compressionQuality = 100
|
|
89
|
+
});
|
|
90
|
+
|
|
91
|
+
// Save and reimport
|
|
92
|
+
importer.SaveAndReimport();
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
/// <summary>
|
|
96
|
+
/// Gets all supported platform names.
|
|
97
|
+
/// </summary>
|
|
98
|
+
public static string[] GetAllPlatformNames()
|
|
99
|
+
{
|
|
100
|
+
return new string[]
|
|
101
|
+
{
|
|
102
|
+
"Android",
|
|
103
|
+
"iOS",
|
|
104
|
+
"Standalone",
|
|
105
|
+
"WebGL",
|
|
106
|
+
"WSA",
|
|
107
|
+
"PS4",
|
|
108
|
+
"XboxOne",
|
|
109
|
+
"tvOS"
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
/// <summary>
|
|
114
|
+
/// Checks if a platform name is valid.
|
|
115
|
+
/// </summary>
|
|
116
|
+
public static bool IsValidPlatformName(string platformName)
|
|
117
|
+
{
|
|
118
|
+
string[] validPlatforms = GetAllPlatformNames();
|
|
119
|
+
for (int i = 0; i < validPlatforms.Length; i++)
|
|
120
|
+
{
|
|
121
|
+
if (validPlatforms[i] == platformName)
|
|
122
|
+
return true;
|
|
123
|
+
}
|
|
124
|
+
return false;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
}
|