@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.
Files changed (360) hide show
  1. package/CHANGELOG.md +53 -0
  2. package/LICENSE-UNITY-COMPANION.md +122 -0
  3. package/LICENSE.md +31 -0
  4. package/NOTICE.md +90 -0
  5. package/README.md +273 -2
  6. package/cordis.patch.yml +22 -0
  7. package/docs/design.md +297 -0
  8. package/icon.svg +16 -0
  9. package/lib/frontmatter.js +392 -0
  10. package/lib/gating.js +105 -0
  11. package/lib/harness.js +16 -0
  12. package/lib/index.js +171 -0
  13. package/lib/project.js +210 -0
  14. package/lib/registry.js +268 -0
  15. package/lib/requirements.js +214 -0
  16. package/lib/skills.js +191 -0
  17. package/lib/types/frontmatter.d.ts +84 -0
  18. package/lib/types/gating.d.ts +80 -0
  19. package/lib/types/harness.d.ts +152 -0
  20. package/lib/types/index.d.ts +75 -0
  21. package/lib/types/project.d.ts +93 -0
  22. package/lib/types/registry.d.ts +96 -0
  23. package/lib/types/requirements.d.ts +67 -0
  24. package/lib/types/skills.d.ts +54 -0
  25. package/lib/types/watch.d.ts +34 -0
  26. package/lib/watch.js +84 -0
  27. package/locale/en.json +6 -0
  28. package/locale/zh.json +6 -0
  29. package/package.json +70 -4
  30. package/skills/2d-pixel-perfect/SKILL.md +208 -0
  31. package/skills/2d-pixel-perfect/references/api-reference.md +81 -0
  32. package/skills/2d-pixel-perfect/references/camera-setup-builtin.cs +40 -0
  33. package/skills/2d-pixel-perfect/references/camera-setup-urp.cs +49 -0
  34. package/skills/2d-pixel-perfect/references/pipeline-detection.cs +50 -0
  35. package/skills/2d-pixel-perfect/references/sprite-settings.cs +37 -0
  36. package/skills/asset-transformer-toolkit/SECURITY.md +15 -0
  37. package/skills/asset-transformer-toolkit/SKILL.md +39 -0
  38. package/skills/asset-transformer-toolkit/references/create-importer.md +121 -0
  39. package/skills/asset-transformer-toolkit/references/lods.md +61 -0
  40. package/skills/asset-transformer-toolkit/references/rule-api.md +154 -0
  41. package/skills/asset-transformer-toolkit/references/ruleblock-api.md +37 -0
  42. package/skills/asset-transformer-toolkit/references/ruleset-api.md +138 -0
  43. package/skills/asset-transformer-toolkit/references/rulesets-and-actions.md +227 -0
  44. package/skills/audio-setup-mixers/SECURITY.md +16 -0
  45. package/skills/audio-setup-mixers/SKILL.md +127 -0
  46. package/skills/audio-setup-mixers/references/api.md +162 -0
  47. package/skills/build-gtk/SECURITY.md +16 -0
  48. package/skills/build-gtk/SKILL.md +200 -0
  49. package/skills/build-gtk/references/api-reference.md +33 -0
  50. package/skills/build-gtk/references/graph-api-gaps.md +96 -0
  51. package/skills/build-gtk/references/runtime-and-visualization.md +191 -0
  52. package/skills/build-gtk/references/state-machine-api.md +270 -0
  53. package/skills/build-gtk/references/where-the-docs-stop.md +49 -0
  54. package/skills/build-live-game/SKILL.md +159 -0
  55. package/skills/build-live-game/references/achievements.md +757 -0
  56. package/skills/build-live-game/references/apis.md +271 -0
  57. package/skills/build-live-game/references/authentication.md +431 -0
  58. package/skills/build-live-game/references/battlepass.md +904 -0
  59. package/skills/build-live-game/references/blueprints-and-samples.md +75 -0
  60. package/skills/build-live-game/references/cloud-code-cloudbehaviours.md +1111 -0
  61. package/skills/build-live-game/references/cloud-code-modules.md +1276 -0
  62. package/skills/build-live-game/references/cloud-code.md +58 -0
  63. package/skills/build-live-game/references/cloud-save.md +464 -0
  64. package/skills/build-live-game/references/deployment.md +231 -0
  65. package/skills/build-live-game/references/orientation.md +30 -0
  66. package/skills/build-live-game/references/player-account.md +821 -0
  67. package/skills/build-live-game/references/remote-config.md +96 -0
  68. package/skills/build-live-game/references/services-overview.md +76 -0
  69. package/skills/build-live-game/references/tooling.md +375 -0
  70. package/skills/build-live-game/references/ugs-cli.md +86 -0
  71. package/skills/craft-game-floors/SECURITY.md +23 -0
  72. package/skills/craft-game-floors/SKILL.md +134 -0
  73. package/skills/craft-game-floors/references/art-direction.md +85 -0
  74. package/skills/craft-game-floors/references/camera-rigs.md +51 -0
  75. package/skills/craft-game-floors/references/character-motion.md +35 -0
  76. package/skills/craft-game-floors/references/game-audio.md +47 -0
  77. package/skills/craft-game-floors/references/game-feel.md +68 -0
  78. package/skills/craft-game-floors/references/game-shell.md +45 -0
  79. package/skills/craft-game-floors/references/live-floor.md +35 -0
  80. package/skills/craft-game-floors/references/placeholder-assets.md +35 -0
  81. package/skills/craft-game-floors/references/scene-lighting.md +52 -0
  82. package/skills/craft-game-floors/references/toon-shading.md +34 -0
  83. package/skills/craft-game-floors/references/vfx.md +40 -0
  84. package/skills/craft-game-floors/references/visual-scorecard.md +43 -0
  85. package/skills/create-2d-physics/SECURITY.md +16 -0
  86. package/skills/create-2d-physics/SKILL.md +128 -0
  87. package/skills/create-2d-physics/references/2d-physics-core.md +155 -0
  88. package/skills/create-2d-physics/references/legacy-2d-physics.md +45 -0
  89. package/skills/create-tile-palette-or-rule-tiles/SKILL.md +95 -0
  90. package/skills/create-tile-palette-or-rule-tiles/references/hexagonalruletile.md +71 -0
  91. package/skills/create-tile-palette-or-rule-tiles/references/palette-create.md +38 -0
  92. package/skills/create-tile-palette-or-rule-tiles/references/ruletile-createempty.md +37 -0
  93. package/skills/create-tile-palette-or-rule-tiles/references/ruletile-createfromsegment.md +219 -0
  94. package/skills/create-tile-palette-or-rule-tiles/references/ruletile.md +95 -0
  95. package/skills/create-tile-palette-or-rule-tiles/scripts/CreatePaletteTemplate.cs +148 -0
  96. package/skills/create-tile-palette-or-rule-tiles/scripts/ManualWorkflowExample.cs +63 -0
  97. package/skills/create-tile-palette-or-rule-tiles/scripts/RuleTileGenerator.cs +61 -0
  98. package/skills/create-tile-palette-or-rule-tiles/scripts/TilemapRuleTileCreateFromSegment.cs +225 -0
  99. package/skills/fix-3d-physics-collisions/SECURITY.md +17 -0
  100. package/skills/fix-3d-physics-collisions/SKILL.md +139 -0
  101. package/skills/fix-3d-physics-collisions/references/collision-checklist.md +80 -0
  102. package/skills/fix-3d-physics-collisions/references/collision-debugger.md +18 -0
  103. package/skills/fix-3d-physics-collisions/references/console-errors-table.md +9 -0
  104. package/skills/fix-3d-physics-collisions/references/kinematic-trigger-facts.md +18 -0
  105. package/skills/fix-3d-physics-collisions/references/other-symptoms.md +29 -0
  106. package/skills/fix-3d-physics-collisions/references/raycast-checklist.md +8 -0
  107. package/skills/fix-3d-physics-collisions/references/topic-map.md +42 -0
  108. package/skills/fix-3d-physics-collisions/references/trigger-checklist.md +9 -0
  109. package/skills/fix-3d-physics-collisions/scripts/CollisionDebugger.cs +561 -0
  110. package/skills/generate-editor-search-query/SECURITY.md +17 -0
  111. package/skills/generate-editor-search-query/SKILL.md +117 -0
  112. package/skills/generate-editor-search-query/references/open-search-window.md +70 -0
  113. package/skills/generate-editor-search-query/references/query-patterns.md +124 -0
  114. package/skills/implement-in-app-purchases/SKILL.md +82 -0
  115. package/skills/implement-in-app-purchases/references/api-details.md +41 -0
  116. package/skills/implement-in-app-purchases/references/api-notes.md +105 -0
  117. package/skills/implement-in-app-purchases/references/codeless-catalog.md +197 -0
  118. package/skills/implement-in-app-purchases/references/convert-adapty.md +270 -0
  119. package/skills/implement-in-app-purchases/references/convert-essentialkit.md +239 -0
  120. package/skills/implement-in-app-purchases/references/convert-revenuecat.md +277 -0
  121. package/skills/implement-in-app-purchases/references/convert-unipay.md +145 -0
  122. package/skills/implement-in-app-purchases/references/migration-v4-to-v5.md +46 -0
  123. package/skills/implement-in-app-purchases/references/path-add-iap-to-new-project.md +197 -0
  124. package/skills/implement-in-app-purchases/references/path-convert-native-google-billing.md +302 -0
  125. package/skills/implement-in-app-purchases/references/path-convert-native-storekit.md +357 -0
  126. package/skills/implement-in-app-purchases/references/path-implement-iap-d2c.md +253 -0
  127. package/skills/implement-in-app-purchases/references/platform-notes.md +55 -0
  128. package/skills/implement-in-app-purchases/references/pre-check.md +207 -0
  129. package/skills/implement-in-app-purchases/references/topic-map.md +46 -0
  130. package/skills/initialize-ai-navigation/SKILL.md +109 -0
  131. package/skills/initialize-ai-navigation/references/navigation-system.md +793 -0
  132. package/skills/initialize-ai-navigation/references/topic-map.md +66 -0
  133. package/skills/levelplay-unity-integration/SKILL.md +122 -0
  134. package/skills/levelplay-unity-integration/references/adding-more-ad-formats.md +15 -0
  135. package/skills/levelplay-unity-integration/references/banner-api.md +927 -0
  136. package/skills/levelplay-unity-integration/references/best-practices.md +604 -0
  137. package/skills/levelplay-unity-integration/references/dependency-resolution.md +94 -0
  138. package/skills/levelplay-unity-integration/references/examples.md +10 -0
  139. package/skills/levelplay-unity-integration/references/ilrd-api.md +337 -0
  140. package/skills/levelplay-unity-integration/references/initialization-api.md +851 -0
  141. package/skills/levelplay-unity-integration/references/interstitial-api.md +907 -0
  142. package/skills/levelplay-unity-integration/references/ios-setup.md +463 -0
  143. package/skills/levelplay-unity-integration/references/migration-sdk-9.md +666 -0
  144. package/skills/levelplay-unity-integration/references/privacy-settings.md +593 -0
  145. package/skills/levelplay-unity-integration/references/production-release-checklist.md +22 -0
  146. package/skills/levelplay-unity-integration/references/rewarded-api.md +918 -0
  147. package/skills/levelplay-unity-integration/references/step-0-new-or-migration.md +8 -0
  148. package/skills/levelplay-unity-integration/references/step-1-verify-environment.md +4 -0
  149. package/skills/levelplay-unity-integration/references/step-10-testing.md +15 -0
  150. package/skills/levelplay-unity-integration/references/step-2-business-goals.md +12 -0
  151. package/skills/levelplay-unity-integration/references/step-3-install-sdk.md +55 -0
  152. package/skills/levelplay-unity-integration/references/step-4-native-dependencies.md +22 -0
  153. package/skills/levelplay-unity-integration/references/step-5-app-key-and-ad-units.md +18 -0
  154. package/skills/levelplay-unity-integration/references/step-6-5-privacy-and-regulation.md +51 -0
  155. package/skills/levelplay-unity-integration/references/step-6-admob-keys.md +16 -0
  156. package/skills/levelplay-unity-integration/references/step-7-initialize.md +50 -0
  157. package/skills/levelplay-unity-integration/references/step-8-ad-unit-strategy.md +16 -0
  158. package/skills/levelplay-unity-integration/references/step-9-implement-ad-units.md +66 -0
  159. package/skills/levelplay-unity-integration/references/testing-and-validation.md +222 -0
  160. package/skills/levelplay-unity-integration/references/troubleshooting.md +99 -0
  161. package/skills/localize-unity-project/SKILL.md +159 -0
  162. package/skills/localize-unity-project/references/api-notes.md +15 -0
  163. package/skills/localize-unity-project/references/cjk-fonts.md +83 -0
  164. package/skills/localize-unity-project/references/docs-map.md +42 -0
  165. package/skills/localize-unity-project/references/documentation-lookup.md +33 -0
  166. package/skills/localize-unity-project/references/locale-switching.md +17 -0
  167. package/skills/localize-unity-project/references/table-completeness-check.md +47 -0
  168. package/skills/localize-unity-project/references/translating-existing-project.md +47 -0
  169. package/skills/localize-unity-project/references/translation-strategy.md +41 -0
  170. package/skills/localize-unity-project/references/troubleshooting.md +12 -0
  171. package/skills/localize-unity-project/scripts/L10nBatchProcessor.cs +191 -0
  172. package/skills/localize-unity-project/scripts/LocalizedFontAsset.cs +18 -0
  173. package/skills/manage-sprite-atlas/SKILL.md +202 -0
  174. package/skills/manage-sprite-atlas/references/addressables-delivery.md +58 -0
  175. package/skills/manage-sprite-atlas/references/advanced-manual-authoring.md +19 -0
  176. package/skills/manage-sprite-atlas/references/api.md +382 -0
  177. package/skills/manage-sprite-atlas/references/best-practices.md +183 -0
  178. package/skills/manage-sprite-atlas/references/common-errors.md +123 -0
  179. package/skills/manage-sprite-atlas/references/complete-workflow.md +61 -0
  180. package/skills/manage-sprite-atlas/references/custom-packing.md +147 -0
  181. package/skills/manage-sprite-atlas/references/delivery-mechanism.md +30 -0
  182. package/skills/manage-sprite-atlas/references/key-requirements.md +21 -0
  183. package/skills/manage-sprite-atlas/references/manual-authoring.md +39 -0
  184. package/skills/manage-sprite-atlas/references/namespaces.md +15 -0
  185. package/skills/manage-sprite-atlas/references/v2-architecture.md +21 -0
  186. package/skills/manage-sprite-atlas/resources/authoringvsruntime.cs +176 -0
  187. package/skills/manage-sprite-atlas/resources/buildaddressablespostprocess.cs +59 -0
  188. package/skills/manage-sprite-atlas/resources/cacheloadedatlases.cs +145 -0
  189. package/skills/manage-sprite-atlas/resources/cleanupbatchoperations.cs +119 -0
  190. package/skills/manage-sprite-atlas/resources/createandconfiguremasteratlas.cs +57 -0
  191. package/skills/manage-sprite-atlas/resources/custompackersetup.cs +88 -0
  192. package/skills/manage-sprite-atlas/resources/deprecatedmethods.cs +142 -0
  193. package/skills/manage-sprite-atlas/resources/dontmodifywithoutsaving.cs +120 -0
  194. package/skills/manage-sprite-atlas/resources/dontpackinruntimebuilds.cs +190 -0
  195. package/skills/manage-sprite-atlas/resources/dontscriptspriteatlasineditor.cs +114 -0
  196. package/skills/manage-sprite-atlas/resources/editorconfiguration.cs +95 -0
  197. package/skills/manage-sprite-atlas/resources/enablespritepacking.cs +172 -0
  198. package/skills/manage-sprite-atlas/resources/gridspritepacker.cs +50 -0
  199. package/skills/manage-sprite-atlas/resources/handlelatebinding.cs +147 -0
  200. package/skills/manage-sprite-atlas/resources/handlenullcases.cs +141 -0
  201. package/skills/manage-sprite-atlas/resources/migratev1tov2.cs +335 -0
  202. package/skills/manage-sprite-atlas/resources/multipagepacker.cs +80 -0
  203. package/skills/manage-sprite-atlas/resources/optimizetexturesettings.cs +191 -0
  204. package/skills/manage-sprite-atlas/resources/packerdebugging.cs +158 -0
  205. package/skills/manage-sprite-atlas/resources/packtransform.cs +51 -0
  206. package/skills/manage-sprite-atlas/resources/platformnames.cs +127 -0
  207. package/skills/manage-sprite-atlas/resources/queryspritesefficiently.cs +222 -0
  208. package/skills/manage-sprite-atlas/resources/registercallbacks.cs +152 -0
  209. package/skills/manage-sprite-atlas/resources/runtimeatlasloader.cs +15 -0
  210. package/skills/manage-sprite-atlas/resources/runtimespriteaccess.cs +19 -0
  211. package/skills/manage-sprite-atlas/resources/savespriteatlasasset.cs +107 -0
  212. package/skills/manage-sprite-atlas/resources/scriptablepacker.cs +81 -0
  213. package/skills/manage-sprite-atlas/resources/setincludeinbuild.cs +164 -0
  214. package/skills/manage-sprite-atlas/resources/sizeoptimizedpacker.cs +88 -0
  215. package/skills/manage-sprite-atlas/resources/spriteatlaslatebinding.cs +123 -0
  216. package/skills/manage-sprite-atlas/resources/spriteatlasprebuildgenerator.cs +219 -0
  217. package/skills/manage-sprite-atlas/resources/spritedata.cs +35 -0
  218. package/skills/manage-sprite-atlas/resources/spritepack.cs +39 -0
  219. package/skills/manage-sprite-atlas/resources/texturedata.cs +15 -0
  220. package/skills/manage-sprite-atlas/resources/updatebuildscripts.cs +357 -0
  221. package/skills/manage-sprite-atlas/resources/updatesettingsconfiguration.cs +135 -0
  222. package/skills/manage-sprite-atlas/resources/usevariantswisely.cs +179 -0
  223. package/skills/manage-sprite-atlas/resources/variantatlas.cs +39 -0
  224. package/skills/migrate-birp-to-urp/SECURITY.md +16 -0
  225. package/skills/migrate-birp-to-urp/SKILL.md +167 -0
  226. package/skills/migrate-birp-to-urp/references/capturing-the-editor.md +66 -0
  227. package/skills/migrate-birp-to-urp/references/complex-shader-situations.md +272 -0
  228. package/skills/migrate-birp-to-urp/references/conversion-and-rendering-triage.md +113 -0
  229. package/skills/migrate-birp-to-urp/references/custom-shader-triage.md +123 -0
  230. package/skills/migrate-birp-to-urp/references/implementation-patterns.md +529 -0
  231. package/skills/migrate-birp-to-urp/references/migration-workflow.md +265 -0
  232. package/skills/migrate-birp-to-urp/references/parity-validation-and-troubleshooting.md +114 -0
  233. package/skills/migrate-birp-to-urp/references/preflight-and-urp-setup.md +195 -0
  234. package/skills/migrate-birp-to-urp/references/quality-settings-map.md +69 -0
  235. package/skills/new-unity-project/SECURITY.md +26 -0
  236. package/skills/new-unity-project/SKILL.md +171 -0
  237. package/skills/new-unity-project/references/checklist.md +18 -0
  238. package/skills/new-unity-project/references/common-mistakes.md +15 -0
  239. package/skills/new-unity-project/references/skill-setup.md +66 -0
  240. package/skills/new-unity-project/references/step-1-concept.md +13 -0
  241. package/skills/new-unity-project/references/step-2-platforms-and-create.md +31 -0
  242. package/skills/new-unity-project/references/step-3-join-and-reconcile.md +16 -0
  243. package/skills/new-unity-project/references/step-4-source-control.md +9 -0
  244. package/skills/new-unity-project/references/step-5-packages.md +18 -0
  245. package/skills/new-unity-project/references/step-6-identity-and-floors.md +20 -0
  246. package/skills/new-unity-project/references/step-7-visual-baseline.md +75 -0
  247. package/skills/new-unity-project/references/step-8-first-commit.md +21 -0
  248. package/skills/new-unity-project/references/step-9-handoff.md +23 -0
  249. package/skills/optimize-audio/SECURITY.md +16 -0
  250. package/skills/optimize-audio/SKILL.md +120 -0
  251. package/skills/optimize-audio/references/diagnostics.md +42 -0
  252. package/skills/optimize-audio/references/troubleshooting.md +41 -0
  253. package/skills/optimize-audio/resources/audio-import-api.md +149 -0
  254. package/skills/optimize-audio/resources/platform-settings.md +48 -0
  255. package/skills/optimize-text-mesh-pro/SKILL.md +181 -0
  256. package/skills/optimize-text-mesh-pro/references/dynamic-atlas-and-profiling.md +28 -0
  257. package/skills/optimize-text-mesh-pro/references/topic-map.md +36 -0
  258. package/skills/optimize-web/SECURITY.md +16 -0
  259. package/skills/optimize-web/SKILL.md +157 -0
  260. package/skills/optimize-web/references/editor-csharp.md +120 -0
  261. package/skills/optimize-web/references/topic-map.md +49 -0
  262. package/skills/optimize-web/references/troubleshooting.md +45 -0
  263. package/skills/optimize-web/references/understand-request.md +19 -0
  264. package/skills/optimize-web/references/web-assets-quality.md +59 -0
  265. package/skills/optimize-web/references/web-player-settings.md +39 -0
  266. package/skills/optimize-web/references/web-profiling-memory.md +71 -0
  267. package/skills/optimize-web/scripts/WebOptimizer.cs +46 -0
  268. package/skills/optimize-web/scripts/toktx-examples.sh +11 -0
  269. package/skills/setup-multiplayer-services/SKILL.md +36 -0
  270. package/skills/setup-multiplayer-services/references/dgs-entrypoint.md +79 -0
  271. package/skills/setup-multiplayer-services/references/entrypoints.md +213 -0
  272. package/skills/setup-multiplayer-services/references/examples.md +33 -0
  273. package/skills/setup-multiplayer-services/references/implementation-fit.md +30 -0
  274. package/skills/setup-multiplayer-services/references/underlying-services.md +11 -0
  275. package/skills/setup-multiplayer-services/references/workflows-prerequisites.md +17 -0
  276. package/skills/setup-vivox-voice-chat/SECURITY.md +16 -0
  277. package/skills/setup-vivox-voice-chat/SKILL.md +166 -0
  278. package/skills/setup-vivox-voice-chat/references/api-reference-lookup.md +28 -0
  279. package/skills/setup-vivox-voice-chat/references/docs-topic-map.md +13 -0
  280. package/skills/setup-vivox-voice-chat/references/events-and-participants.md +79 -0
  281. package/skills/setup-vivox-voice-chat/references/init-and-login.md +92 -0
  282. package/skills/setup-vivox-voice-chat/references/text-chat.md +93 -0
  283. package/skills/setup-vivox-voice-chat/references/troubleshooting.md +47 -0
  284. package/skills/setup-vivox-voice-chat/references/voice-channels.md +92 -0
  285. package/skills/shader-graph-create-custom-node/SKILL.md +25 -0
  286. package/skills/shader-graph-create-custom-node/resources/all_hints.hlsl +182 -0
  287. package/skills/sprite-editor/SECURITY.md +16 -0
  288. package/skills/sprite-editor/SKILL.md +66 -0
  289. package/skills/sprite-editor/references/api_reference.md +151 -0
  290. package/skills/sprite-editor/references/background.md +112 -0
  291. package/skills/sprite-editor/references/templates.md +72 -0
  292. package/skills/sprite-editor/scripts/AutomaticSliceTexture.cs +40 -0
  293. package/skills/sprite-editor/scripts/GenerateNewSpriteRects.cs +200 -0
  294. package/skills/sprite-editor/scripts/GetTextureSourceImageSize.cs +32 -0
  295. package/skills/sprite-editor/scripts/GetTextureToSlice.cs +55 -0
  296. package/skills/sprite-editor/scripts/GridSliceTexture.cs +40 -0
  297. package/skills/sprite-editor/scripts/IsometricSliceTexture.cs +141 -0
  298. package/skills/sprite-editor/scripts/README.md +134 -0
  299. package/skills/sprite-editor/scripts/SetPivotExample.cs +58 -0
  300. package/skills/sprite-editor/scripts/SpriteToPng.cs +88 -0
  301. package/skills/sprite-segment-3x3grid/SKILL.md +177 -0
  302. package/skills/sprite-segment-3x3grid/references/topic-map.md +37 -0
  303. package/skills/sprite-segment-3x3grid/scripts/SpriteGridAnalysis.cs +119 -0
  304. package/skills/ui/SKILL.md +142 -0
  305. package/skills/ui-imgui/SKILL.md +180 -0
  306. package/skills/ui-imgui/references/gui-elements.md +156 -0
  307. package/skills/ui-imgui/references/templates.md +141 -0
  308. package/skills/ui-ugui/SKILL.md +217 -0
  309. package/skills/ui-ugui/references/layout-and-anchors.md +61 -0
  310. package/skills/ui-ugui/references/scrollview-setup.md +29 -0
  311. package/skills/ui-uitk/SKILL.md +229 -0
  312. package/skills/ui-uitk/references/common-issues.md +74 -0
  313. package/skills/ui-uitk/references/custom-elements.md +241 -0
  314. package/skills/ui-uitk/references/painter2d.md +282 -0
  315. package/skills/ui-uitk/references/pointermanipulator-guide.md +94 -0
  316. package/skills/ui-uitk/references/svg-icons.md +136 -0
  317. package/skills/ui-uitk/references/ui-runtime-binding.md +234 -0
  318. package/skills/ui-uitk/references/uss-guide.md +138 -0
  319. package/skills/unity-cli/CHANGELOG.md +524 -0
  320. package/skills/unity-cli/SECURITY.md +68 -0
  321. package/skills/unity-cli/SKILL.md +160 -0
  322. package/skills/unity-cli/references/auth-license-cloud.md +318 -0
  323. package/skills/unity-cli/references/bootstrap-project.md +177 -0
  324. package/skills/unity-cli/references/build-run-test.md +555 -0
  325. package/skills/unity-cli/references/catalog-plugins.md +86 -0
  326. package/skills/unity-cli/references/ci-recipes.md +76 -0
  327. package/skills/unity-cli/references/cloud-automation.md +819 -0
  328. package/skills/unity-cli/references/cloud-workflows.md +19 -0
  329. package/skills/unity-cli/references/collaboration.md +533 -0
  330. package/skills/unity-cli/references/config-hub.md +239 -0
  331. package/skills/unity-cli/references/diagnostics-maintenance.md +718 -0
  332. package/skills/unity-cli/references/docs-workflow.md +179 -0
  333. package/skills/unity-cli/references/editor-targeting.md +29 -0
  334. package/skills/unity-cli/references/editors-install.md +490 -0
  335. package/skills/unity-cli/references/environment-variables.md +42 -0
  336. package/skills/unity-cli/references/exit-codes.md +47 -0
  337. package/skills/unity-cli/references/global-flags.md +32 -0
  338. package/skills/unity-cli/references/integration-advanced.md +1130 -0
  339. package/skills/unity-cli/references/notes.md +20 -0
  340. package/skills/unity-cli/references/notifications.md +39 -0
  341. package/skills/unity-cli/references/playmode-verification-loop.md +279 -0
  342. package/skills/unity-cli/references/projects-templates.md +997 -0
  343. package/skills/unity-cli/references/scene-editing-preflight.md +25 -0
  344. package/skills/unity-cli/references/setup-and-help.md +54 -0
  345. package/skills/unity-cli/references/version-control.md +612 -0
  346. package/skills/unity-package-management/SKILL.md +169 -0
  347. package/skills/unity-package-management/references/discovering-packages.md +66 -0
  348. package/skills/unity-package-management/references/headless-run.md +31 -0
  349. package/skills/unity-package-management/references/installer-script.md +92 -0
  350. package/skills/unity-package-management/references/select-packages.md +126 -0
  351. package/skills/unity-pipeline/SECURITY.md +17 -0
  352. package/skills/unity-pipeline/SKILL.md +205 -0
  353. package/skills/unity-pipeline/references/csharp-eval.md +23 -0
  354. package/skills/unity-pipeline/references/multiplayer-play-mode.md +103 -0
  355. package/skills/urp-postprocessing/SECURITY.md +16 -0
  356. package/skills/urp-postprocessing/SKILL.md +188 -0
  357. package/skills/urp-postprocessing/references/code-templates.md +150 -0
  358. package/skills/urp-postprocessing/references/effect-reference.md +86 -0
  359. package/skills/validate-urp-render-graph-renderer-feature/SKILL.md +92 -0
  360. 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
+ }