@alpsckr/unitycli 0.4.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/README.md +389 -0
- package/contracts/command-contract.json +3972 -0
- package/contracts/stable-session/admission-acquire-v1.schema.json +16 -0
- package/contracts/stable-session/admission-response-v1.schema.json +30 -0
- package/contracts/stable-session/admission-revoke-v1.schema.json +15 -0
- package/contracts/stable-session/admission-transport-v1.json +36 -0
- package/contracts/stable-session/bridge-request-v2.schema.json +26 -0
- package/contracts/stable-session/canonical-path-v1-golden.json +23 -0
- package/contracts/stable-session/completion-contract.schema.json +46 -0
- package/contracts/stable-session/direct-call-semantics.json +102 -0
- package/contracts/stable-session/editor-state.schema.json +92 -0
- package/contracts/stable-session/health-v3.schema.json +47 -0
- package/contracts/stable-session/instance-registry-v3.schema.json +152 -0
- package/contracts/stable-session/removal-map.json +27 -0
- package/contracts/stable-session/request-digest-v1-golden.json +7 -0
- package/contracts/stable-session/runtime-config-v2.schema.json +27 -0
- package/contracts/static-capability-catalog.json +48226 -0
- package/contracts/tool-completion-contract.json +11322 -0
- package/dist/args.d.ts +27 -0
- package/dist/args.js +109 -0
- package/dist/args.js.map +1 -0
- package/dist/bridge/admission.d.ts +28 -0
- package/dist/bridge/admission.js +29 -0
- package/dist/bridge/admission.js.map +1 -0
- package/dist/bridge/args.d.ts +16 -0
- package/dist/bridge/args.js +123 -0
- package/dist/bridge/args.js.map +1 -0
- package/dist/bridge/domains/animation.d.ts +2 -0
- package/dist/bridge/domains/animation.js +199 -0
- package/dist/bridge/domains/animation.js.map +1 -0
- package/dist/bridge/domains/asset.d.ts +2 -0
- package/dist/bridge/domains/asset.js +85 -0
- package/dist/bridge/domains/asset.js.map +1 -0
- package/dist/bridge/domains/build.d.ts +2 -0
- package/dist/bridge/domains/build.js +35 -0
- package/dist/bridge/domains/build.js.map +1 -0
- package/dist/bridge/domains/camera.d.ts +2 -0
- package/dist/bridge/domains/camera.js +54 -0
- package/dist/bridge/domains/camera.js.map +1 -0
- package/dist/bridge/domains/code.d.ts +2 -0
- package/dist/bridge/domains/code.js +17 -0
- package/dist/bridge/domains/code.js.map +1 -0
- package/dist/bridge/domains/console.d.ts +2 -0
- package/dist/bridge/domains/console.js +34 -0
- package/dist/bridge/domains/console.js.map +1 -0
- package/dist/bridge/domains/diagnose.d.ts +2 -0
- package/dist/bridge/domains/diagnose.js +11 -0
- package/dist/bridge/domains/diagnose.js.map +1 -0
- package/dist/bridge/domains/editor.d.ts +2 -0
- package/dist/bridge/domains/editor.js +66 -0
- package/dist/bridge/domains/editor.js.map +1 -0
- package/dist/bridge/domains/extension.d.ts +8 -0
- package/dist/bridge/domains/extension.js +20 -0
- package/dist/bridge/domains/extension.js.map +1 -0
- package/dist/bridge/domains/game-object.d.ts +2 -0
- package/dist/bridge/domains/game-object.js +179 -0
- package/dist/bridge/domains/game-object.js.map +1 -0
- package/dist/bridge/domains/graphics.d.ts +2 -0
- package/dist/bridge/domains/graphics.js +185 -0
- package/dist/bridge/domains/graphics.js.map +1 -0
- package/dist/bridge/domains/material.d.ts +2 -0
- package/dist/bridge/domains/material.js +70 -0
- package/dist/bridge/domains/material.js.map +1 -0
- package/dist/bridge/domains/navmesh.d.ts +2 -0
- package/dist/bridge/domains/navmesh.js +34 -0
- package/dist/bridge/domains/navmesh.js.map +1 -0
- package/dist/bridge/domains/object.d.ts +2 -0
- package/dist/bridge/domains/object.js +43 -0
- package/dist/bridge/domains/object.js.map +1 -0
- package/dist/bridge/domains/occlusion.d.ts +2 -0
- package/dist/bridge/domains/occlusion.js +12 -0
- package/dist/bridge/domains/occlusion.js.map +1 -0
- package/dist/bridge/domains/package.d.ts +2 -0
- package/dist/bridge/domains/package.js +2 -0
- package/dist/bridge/domains/package.js.map +1 -0
- package/dist/bridge/domains/physics.d.ts +2 -0
- package/dist/bridge/domains/physics.js +139 -0
- package/dist/bridge/domains/physics.js.map +1 -0
- package/dist/bridge/domains/prefab.d.ts +2 -0
- package/dist/bridge/domains/prefab.js +104 -0
- package/dist/bridge/domains/prefab.js.map +1 -0
- package/dist/bridge/domains/profiler.d.ts +2 -0
- package/dist/bridge/domains/profiler.js +105 -0
- package/dist/bridge/domains/profiler.js.map +1 -0
- package/dist/bridge/domains/project-tool.d.ts +2 -0
- package/dist/bridge/domains/project-tool.js +46 -0
- package/dist/bridge/domains/project-tool.js.map +1 -0
- package/dist/bridge/domains/reflection.d.ts +2 -0
- package/dist/bridge/domains/reflection.js +48 -0
- package/dist/bridge/domains/reflection.js.map +1 -0
- package/dist/bridge/domains/runtime-tool.d.ts +2 -0
- package/dist/bridge/domains/runtime-tool.js +48 -0
- package/dist/bridge/domains/runtime-tool.js.map +1 -0
- package/dist/bridge/domains/scene.d.ts +2 -0
- package/dist/bridge/domains/scene.js +100 -0
- package/dist/bridge/domains/scene.js.map +1 -0
- package/dist/bridge/domains/screenshot.d.ts +2 -0
- package/dist/bridge/domains/screenshot.js +85 -0
- package/dist/bridge/domains/screenshot.js.map +1 -0
- package/dist/bridge/domains/scriptable-object.d.ts +2 -0
- package/dist/bridge/domains/scriptable-object.js +53 -0
- package/dist/bridge/domains/scriptable-object.js.map +1 -0
- package/dist/bridge/domains/shader.d.ts +2 -0
- package/dist/bridge/domains/shader.js +66 -0
- package/dist/bridge/domains/shader.js.map +1 -0
- package/dist/bridge/domains/texture.d.ts +2 -0
- package/dist/bridge/domains/texture.js +78 -0
- package/dist/bridge/domains/texture.js.map +1 -0
- package/dist/bridge/domains/timeline.d.ts +2 -0
- package/dist/bridge/domains/timeline.js +75 -0
- package/dist/bridge/domains/timeline.js.map +1 -0
- package/dist/bridge/domains/ui.d.ts +2 -0
- package/dist/bridge/domains/ui.js +193 -0
- package/dist/bridge/domains/ui.js.map +1 -0
- package/dist/bridge/index.d.ts +9 -0
- package/dist/bridge/index.js +124 -0
- package/dist/bridge/index.js.map +1 -0
- package/dist/bridge/registry.d.ts +19 -0
- package/dist/bridge/registry.js +114 -0
- package/dist/bridge/registry.js.map +1 -0
- package/dist/bridge/session-supervisor.d.ts +138 -0
- package/dist/bridge/session-supervisor.js +873 -0
- package/dist/bridge/session-supervisor.js.map +1 -0
- package/dist/bridge/types.d.ts +61 -0
- package/dist/bridge/types.js +17 -0
- package/dist/bridge/types.js.map +1 -0
- package/dist/capabilities.d.ts +5 -0
- package/dist/capabilities.js +84 -0
- package/dist/capabilities.js.map +1 -0
- package/dist/cli-commands/command.d.ts +7 -0
- package/dist/cli-commands/command.js +513 -0
- package/dist/cli-commands/command.js.map +1 -0
- package/dist/cli-commands/extension-auto-detect.d.ts +62 -0
- package/dist/cli-commands/extension-auto-detect.js +119 -0
- package/dist/cli-commands/extension-auto-detect.js.map +1 -0
- package/dist/cli-commands/extensions.d.ts +24 -0
- package/dist/cli-commands/extensions.js +428 -0
- package/dist/cli-commands/extensions.js.map +1 -0
- package/dist/cli-commands/package.d.ts +4 -0
- package/dist/cli-commands/package.js +151 -0
- package/dist/cli-commands/package.js.map +1 -0
- package/dist/cli-commands/skill-installer.d.ts +83 -0
- package/dist/cli-commands/skill-installer.js +703 -0
- package/dist/cli-commands/skill-installer.js.map +1 -0
- package/dist/cli-commands/types.d.ts +17 -0
- package/dist/cli-commands/types.js +2 -0
- package/dist/cli-commands/types.js.map +1 -0
- package/dist/cli.d.ts +17 -0
- package/dist/cli.js +302 -0
- package/dist/cli.js.map +1 -0
- package/dist/contracts/command-contract.d.ts +21 -0
- package/dist/contracts/command-contract.js +143 -0
- package/dist/contracts/command-contract.js.map +1 -0
- package/dist/contracts/csharp-command-extractor.d.ts +1 -0
- package/dist/contracts/csharp-command-extractor.js +89 -0
- package/dist/contracts/csharp-command-extractor.js.map +1 -0
- package/dist/contracts/validate-command-contract.d.ts +1 -0
- package/dist/contracts/validate-command-contract.js +86 -0
- package/dist/contracts/validate-command-contract.js.map +1 -0
- package/dist/doctor.d.ts +22 -0
- package/dist/doctor.js +498 -0
- package/dist/doctor.js.map +1 -0
- package/dist/editor-blocker-observer.d.ts +45 -0
- package/dist/editor-blocker-observer.js +55 -0
- package/dist/editor-blocker-observer.js.map +1 -0
- package/dist/editor-dialogs.d.ts +53 -0
- package/dist/editor-dialogs.js +79 -0
- package/dist/editor-dialogs.js.map +1 -0
- package/dist/extension-availability.d.ts +30 -0
- package/dist/extension-availability.js +83 -0
- package/dist/extension-availability.js.map +1 -0
- package/dist/extensions/.generated-bridge-domains/cinemachine.d.ts +2 -0
- package/dist/extensions/.generated-bridge-domains/cinemachine.js +104 -0
- package/dist/extensions/.generated-bridge-domains/cinemachine.js.map +1 -0
- package/dist/extensions/.generated-bridge-domains/hdrp.d.ts +2 -0
- package/dist/extensions/.generated-bridge-domains/hdrp.js +35 -0
- package/dist/extensions/.generated-bridge-domains/hdrp.js.map +1 -0
- package/dist/extensions/.generated-bridge-domains/probuilder.d.ts +13 -0
- package/dist/extensions/.generated-bridge-domains/probuilder.js +342 -0
- package/dist/extensions/.generated-bridge-domains/probuilder.js.map +1 -0
- package/dist/extensions/.generated-bridge-domains/urp.d.ts +2 -0
- package/dist/extensions/.generated-bridge-domains/urp.js +52 -0
- package/dist/extensions/.generated-bridge-domains/urp.js.map +1 -0
- package/dist/extensions/.generated-bridge-domains/vfx.d.ts +2 -0
- package/dist/extensions/.generated-bridge-domains/vfx.js +312 -0
- package/dist/extensions/.generated-bridge-domains/vfx.js.map +1 -0
- package/dist/extensions/.generated-registry-data.d.ts +7 -0
- package/dist/extensions/.generated-registry-data.js +895 -0
- package/dist/extensions/.generated-registry-data.js.map +1 -0
- package/dist/extensions/contribution-loader.d.ts +27 -0
- package/dist/extensions/contribution-loader.js +60 -0
- package/dist/extensions/contribution-loader.js.map +1 -0
- package/dist/extensions/descriptor-loader.d.ts +73 -0
- package/dist/extensions/descriptor-loader.js +126 -0
- package/dist/extensions/descriptor-loader.js.map +1 -0
- package/dist/extensions/index.d.ts +19 -0
- package/dist/extensions/index.js +23 -0
- package/dist/extensions/index.js.map +1 -0
- package/dist/extensions/installer.d.ts +80 -0
- package/dist/extensions/installer.js +594 -0
- package/dist/extensions/installer.js.map +1 -0
- package/dist/extensions/metadata/index.d.ts +15 -0
- package/dist/extensions/metadata/index.js +41 -0
- package/dist/extensions/metadata/index.js.map +1 -0
- package/dist/extensions/metadata/types.d.ts +38 -0
- package/dist/extensions/metadata/types.js +11 -0
- package/dist/extensions/metadata/types.js.map +1 -0
- package/dist/extensions/project-resolver.d.ts +35 -0
- package/dist/extensions/project-resolver.js +61 -0
- package/dist/extensions/project-resolver.js.map +1 -0
- package/dist/extensions/registry.d.ts +86 -0
- package/dist/extensions/registry.js +262 -0
- package/dist/extensions/registry.js.map +1 -0
- package/dist/extensions/tool-manifest.d.ts +29 -0
- package/dist/extensions/tool-manifest.js +53 -0
- package/dist/extensions/tool-manifest.js.map +1 -0
- package/dist/extensions/types.d.ts +115 -0
- package/dist/extensions/types.js +12 -0
- package/dist/extensions/types.js.map +1 -0
- package/dist/instances.d.ts +163 -0
- package/dist/instances.js +1137 -0
- package/dist/instances.js.map +1 -0
- package/dist/output.d.ts +119 -0
- package/dist/output.js +204 -0
- package/dist/output.js.map +1 -0
- package/dist/package-manager.d.ts +280 -0
- package/dist/package-manager.js +1832 -0
- package/dist/package-manager.js.map +1 -0
- package/dist/platform.d.ts +3 -0
- package/dist/platform.js +19 -0
- package/dist/platform.js.map +1 -0
- package/dist/project-identity.d.ts +48 -0
- package/dist/project-identity.js +254 -0
- package/dist/project-identity.js.map +1 -0
- package/dist/project-tool-discovery.d.ts +23 -0
- package/dist/project-tool-discovery.js +292 -0
- package/dist/project-tool-discovery.js.map +1 -0
- package/dist/protocol/envelope.d.ts +64 -0
- package/dist/protocol/envelope.js +8 -0
- package/dist/protocol/envelope.js.map +1 -0
- package/dist/protocol/index.d.ts +7 -0
- package/dist/protocol/index.js +2 -0
- package/dist/protocol/index.js.map +1 -0
- package/dist/runtime-code.d.ts +20 -0
- package/dist/runtime-code.js +232 -0
- package/dist/runtime-code.js.map +1 -0
- package/dist/schema/any-json.d.ts +4 -0
- package/dist/schema/any-json.js +2 -0
- package/dist/schema/any-json.js.map +1 -0
- package/dist/schema/validator.d.ts +7 -0
- package/dist/schema/validator.js +135 -0
- package/dist/schema/validator.js.map +1 -0
- package/dist/services/docs-reflect-cache.d.ts +106 -0
- package/dist/services/docs-reflect-cache.js +301 -0
- package/dist/services/docs-reflect-cache.js.map +1 -0
- package/dist/services/docs-service.d.ts +16 -0
- package/dist/services/docs-service.js +208 -0
- package/dist/services/docs-service.js.map +1 -0
- package/dist/services/reflect-service.d.ts +12 -0
- package/dist/services/reflect-service.js +122 -0
- package/dist/services/reflect-service.js.map +1 -0
- package/dist/static-capability-catalog.d.ts +13 -0
- package/dist/static-capability-catalog.js +41 -0
- package/dist/static-capability-catalog.js.map +1 -0
- package/dist/test-results.d.ts +13 -0
- package/dist/test-results.js +44 -0
- package/dist/test-results.js.map +1 -0
- package/dist/tools/.generated-completion-registry.d.ts +17 -0
- package/dist/tools/.generated-completion-registry.js +5862 -0
- package/dist/tools/.generated-completion-registry.js.map +1 -0
- package/dist/tools/.generated-registry.d.ts +53 -0
- package/dist/tools/.generated-registry.js +55 -0
- package/dist/tools/.generated-registry.js.map +1 -0
- package/dist/tools/.generated-schemas.d.ts +1 -0
- package/dist/tools/.generated-schemas.js +56 -0
- package/dist/tools/.generated-schemas.js.map +1 -0
- package/dist/tools/asset/refresh.d.ts +26 -0
- package/dist/tools/asset/refresh.js +97 -0
- package/dist/tools/asset/refresh.js.map +1 -0
- package/dist/tools/build/run.d.ts +45 -0
- package/dist/tools/build/run.js +115 -0
- package/dist/tools/build/run.js.map +1 -0
- package/dist/tools/catalog.d.ts +33 -0
- package/dist/tools/catalog.js +202 -0
- package/dist/tools/catalog.js.map +1 -0
- package/dist/tools/code/exec.d.ts +53 -0
- package/dist/tools/code/exec.js +59 -0
- package/dist/tools/code/exec.js.map +1 -0
- package/dist/tools/commands.d.ts +5 -0
- package/dist/tools/commands.js +45 -0
- package/dist/tools/commands.js.map +1 -0
- package/dist/tools/completion-probe.d.ts +22 -0
- package/dist/tools/completion-probe.js +2 -0
- package/dist/tools/completion-probe.js.map +1 -0
- package/dist/tools/define.d.ts +77 -0
- package/dist/tools/define.js +58 -0
- package/dist/tools/define.js.map +1 -0
- package/dist/tools/diagnose/capabilities.d.ts +13 -0
- package/dist/tools/diagnose/capabilities.js +34 -0
- package/dist/tools/diagnose/capabilities.js.map +1 -0
- package/dist/tools/dispatcher.d.ts +27 -0
- package/dist/tools/dispatcher.js +971 -0
- package/dist/tools/dispatcher.js.map +1 -0
- package/dist/tools/docs/get.d.ts +22 -0
- package/dist/tools/docs/get.js +22 -0
- package/dist/tools/docs/get.js.map +1 -0
- package/dist/tools/docs/search.d.ts +31 -0
- package/dist/tools/docs/search.js +22 -0
- package/dist/tools/docs/search.js.map +1 -0
- package/dist/tools/editor/compile.d.ts +66 -0
- package/dist/tools/editor/compile.js +225 -0
- package/dist/tools/editor/compile.js.map +1 -0
- package/dist/tools/editor/dialog/click.d.ts +12 -0
- package/dist/tools/editor/dialog/click.js +71 -0
- package/dist/tools/editor/dialog/click.js.map +1 -0
- package/dist/tools/editor/dialogs.d.ts +12 -0
- package/dist/tools/editor/dialogs.js +58 -0
- package/dist/tools/editor/dialogs.js.map +1 -0
- package/dist/tools/editor/readiness.d.ts +13 -0
- package/dist/tools/editor/readiness.js +24 -0
- package/dist/tools/editor/readiness.js.map +1 -0
- package/dist/tools/editor/refresh.d.ts +25 -0
- package/dist/tools/editor/refresh.js +154 -0
- package/dist/tools/editor/refresh.js.map +1 -0
- package/dist/tools/editor/state.d.ts +63 -0
- package/dist/tools/editor/state.js +286 -0
- package/dist/tools/editor/state.js.map +1 -0
- package/dist/tools/errors.d.ts +30 -0
- package/dist/tools/errors.js +46 -0
- package/dist/tools/errors.js.map +1 -0
- package/dist/tools/metadata/derived.d.ts +34 -0
- package/dist/tools/metadata/derived.js +136 -0
- package/dist/tools/metadata/derived.js.map +1 -0
- package/dist/tools/metadata/index.d.ts +34 -0
- package/dist/tools/metadata/index.js +130 -0
- package/dist/tools/metadata/index.js.map +1 -0
- package/dist/tools/metadata/schemas.d.ts +3 -0
- package/dist/tools/metadata/schemas.js +19 -0
- package/dist/tools/metadata/schemas.js.map +1 -0
- package/dist/tools/metadata/status.d.ts +4 -0
- package/dist/tools/metadata/status.js +61 -0
- package/dist/tools/metadata/status.js.map +1 -0
- package/dist/tools/metadata/types.d.ts +79 -0
- package/dist/tools/metadata/types.js +2 -0
- package/dist/tools/metadata/types.js.map +1 -0
- package/dist/tools/navmesh/bake-cancel.d.ts +7 -0
- package/dist/tools/navmesh/bake-cancel.js +21 -0
- package/dist/tools/navmesh/bake-cancel.js.map +1 -0
- package/dist/tools/navmesh/bake-status.d.ts +5 -0
- package/dist/tools/navmesh/bake-status.js +18 -0
- package/dist/tools/navmesh/bake-status.js.map +1 -0
- package/dist/tools/navmesh/bake.d.ts +5 -0
- package/dist/tools/navmesh/bake.js +23 -0
- package/dist/tools/navmesh/bake.js.map +1 -0
- package/dist/tools/navmesh/live.d.ts +86 -0
- package/dist/tools/navmesh/live.js +206 -0
- package/dist/tools/navmesh/live.js.map +1 -0
- package/dist/tools/navmesh/surface-bake.d.ts +5 -0
- package/dist/tools/navmesh/surface-bake.js +24 -0
- package/dist/tools/navmesh/surface-bake.js.map +1 -0
- package/dist/tools/occlusion/bake-cancel.d.ts +7 -0
- package/dist/tools/occlusion/bake-cancel.js +21 -0
- package/dist/tools/occlusion/bake-cancel.js.map +1 -0
- package/dist/tools/occlusion/bake-status.d.ts +5 -0
- package/dist/tools/occlusion/bake-status.js +18 -0
- package/dist/tools/occlusion/bake-status.js.map +1 -0
- package/dist/tools/occlusion/bake.d.ts +11 -0
- package/dist/tools/occlusion/bake.js +23 -0
- package/dist/tools/occlusion/bake.js.map +1 -0
- package/dist/tools/occlusion/live.d.ts +74 -0
- package/dist/tools/occlusion/live.js +201 -0
- package/dist/tools/occlusion/live.js.map +1 -0
- package/dist/tools/package/bridge-remove.d.ts +26 -0
- package/dist/tools/package/bridge-remove.js +32 -0
- package/dist/tools/package/bridge-remove.js.map +1 -0
- package/dist/tools/package/deploy.d.ts +49 -0
- package/dist/tools/package/deploy.js +134 -0
- package/dist/tools/package/deploy.js.map +1 -0
- package/dist/tools/package/embed.d.ts +14 -0
- package/dist/tools/package/embed.js +93 -0
- package/dist/tools/package/embed.js.map +1 -0
- package/dist/tools/package/file-mutation-worker.d.ts +6 -0
- package/dist/tools/package/file-mutation-worker.js +154 -0
- package/dist/tools/package/file-mutation-worker.js.map +1 -0
- package/dist/tools/package/info.d.ts +19 -0
- package/dist/tools/package/info.js +27 -0
- package/dist/tools/package/info.js.map +1 -0
- package/dist/tools/package/install.d.ts +24 -0
- package/dist/tools/package/install.js +65 -0
- package/dist/tools/package/install.js.map +1 -0
- package/dist/tools/package/list.d.ts +27 -0
- package/dist/tools/package/list.js +21 -0
- package/dist/tools/package/list.js.map +1 -0
- package/dist/tools/package/live-resolve.d.ts +46 -0
- package/dist/tools/package/live-resolve.js +497 -0
- package/dist/tools/package/live-resolve.js.map +1 -0
- package/dist/tools/package/public-result.d.ts +4 -0
- package/dist/tools/package/public-result.js +25 -0
- package/dist/tools/package/public-result.js.map +1 -0
- package/dist/tools/package/registry-clear.d.ts +15 -0
- package/dist/tools/package/registry-clear.js +27 -0
- package/dist/tools/package/registry-clear.js.map +1 -0
- package/dist/tools/package/registry-get.d.ts +10 -0
- package/dist/tools/package/registry-get.js +22 -0
- package/dist/tools/package/registry-get.js.map +1 -0
- package/dist/tools/package/registry-set.d.ts +17 -0
- package/dist/tools/package/registry-set.js +28 -0
- package/dist/tools/package/registry-set.js.map +1 -0
- package/dist/tools/package/remove.d.ts +47 -0
- package/dist/tools/package/remove.js +67 -0
- package/dist/tools/package/remove.js.map +1 -0
- package/dist/tools/package/resolve.d.ts +6 -0
- package/dist/tools/package/resolve.js +14 -0
- package/dist/tools/package/resolve.js.map +1 -0
- package/dist/tools/package/restore.d.ts +42 -0
- package/dist/tools/package/restore.js +122 -0
- package/dist/tools/package/restore.js.map +1 -0
- package/dist/tools/package/scoped-registry-add.d.ts +25 -0
- package/dist/tools/package/scoped-registry-add.js +30 -0
- package/dist/tools/package/scoped-registry-add.js.map +1 -0
- package/dist/tools/package/scoped-registry-list.d.ts +14 -0
- package/dist/tools/package/scoped-registry-list.js +22 -0
- package/dist/tools/package/scoped-registry-list.js.map +1 -0
- package/dist/tools/package/scoped-registry-remove.d.ts +29 -0
- package/dist/tools/package/scoped-registry-remove.js +31 -0
- package/dist/tools/package/scoped-registry-remove.js.map +1 -0
- package/dist/tools/package/search.d.ts +17 -0
- package/dist/tools/package/search.js +39 -0
- package/dist/tools/package/search.js.map +1 -0
- package/dist/tools/package/status.d.ts +21 -0
- package/dist/tools/package/status.js +37 -0
- package/dist/tools/package/status.js.map +1 -0
- package/dist/tools/reflect/member.d.ts +22 -0
- package/dist/tools/reflect/member.js +22 -0
- package/dist/tools/reflect/member.js.map +1 -0
- package/dist/tools/reflect/search.d.ts +30 -0
- package/dist/tools/reflect/search.js +22 -0
- package/dist/tools/reflect/search.js.map +1 -0
- package/dist/tools/reflect/type.d.ts +21 -0
- package/dist/tools/reflect/type.js +22 -0
- package/dist/tools/reflect/type.js.map +1 -0
- package/dist/tools/runtime/console.d.ts +24 -0
- package/dist/tools/runtime/console.js +17 -0
- package/dist/tools/runtime/console.js.map +1 -0
- package/dist/tools/runtime/input/key.d.ts +23 -0
- package/dist/tools/runtime/input/key.js +18 -0
- package/dist/tools/runtime/input/key.js.map +1 -0
- package/dist/tools/runtime/input/pointer.d.ts +34 -0
- package/dist/tools/runtime/input/pointer.js +18 -0
- package/dist/tools/runtime/input/pointer.js.map +1 -0
- package/dist/tools/runtime/log.d.ts +20 -0
- package/dist/tools/runtime/log.js +17 -0
- package/dist/tools/runtime/log.js.map +1 -0
- package/dist/tools/runtime/state.d.ts +45 -0
- package/dist/tools/runtime/state.js +17 -0
- package/dist/tools/runtime/state.js.map +1 -0
- package/dist/tools/runtime/target-framerate/set.d.ts +16 -0
- package/dist/tools/runtime/target-framerate/set.js +17 -0
- package/dist/tools/runtime/target-framerate/set.js.map +1 -0
- package/dist/tools/runtime/time-scale/set.d.ts +16 -0
- package/dist/tools/runtime/time-scale/set.js +17 -0
- package/dist/tools/runtime/time-scale/set.js.map +1 -0
- package/dist/tools/runtime/ui/capture-element.d.ts +31 -0
- package/dist/tools/runtime/ui/capture-element.js +17 -0
- package/dist/tools/runtime/ui/capture-element.js.map +1 -0
- package/dist/tools/test/cancel.d.ts +19 -0
- package/dist/tools/test/cancel.js +94 -0
- package/dist/tools/test/cancel.js.map +1 -0
- package/dist/tools/test/run.d.ts +39 -0
- package/dist/tools/test/run.js +101 -0
- package/dist/tools/test/run.js.map +1 -0
- package/dist/tools/tools/describe.d.ts +27 -0
- package/dist/tools/tools/describe.js +35 -0
- package/dist/tools/tools/describe.js.map +1 -0
- package/dist/tools/tools/group-list.d.ts +20 -0
- package/dist/tools/tools/group-list.js +39 -0
- package/dist/tools/tools/group-list.js.map +1 -0
- package/dist/tools/tools/group-summaries.d.ts +3 -0
- package/dist/tools/tools/group-summaries.js +52 -0
- package/dist/tools/tools/group-summaries.js.map +1 -0
- package/dist/tools/tools/group.d.ts +13 -0
- package/dist/tools/tools/group.js +34 -0
- package/dist/tools/tools/group.js.map +1 -0
- package/dist/tools/tools/search.d.ts +17 -0
- package/dist/tools/tools/search.js +42 -0
- package/dist/tools/tools/search.js.map +1 -0
- package/dist/types.d.ts +5 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/unity-project-processes.d.ts +12 -0
- package/dist/unity-project-processes.js +59 -0
- package/dist/unity-project-processes.js.map +1 -0
- package/dist/util.d.ts +11 -0
- package/dist/util.js +22 -0
- package/dist/util.js.map +1 -0
- package/dist/windows-editor-state.d.ts +31 -0
- package/dist/windows-editor-state.js +98 -0
- package/dist/windows-editor-state.js.map +1 -0
- package/docs/README.md +43 -0
- package/docs/availability-differences.md +97 -0
- package/docs/command-execution.md +89 -0
- package/docs/error-codes.md +204 -0
- package/docs/extensions.md +132 -0
- package/docs/risk-and-side-effects.md +93 -0
- package/docs/safety-boundaries.md +103 -0
- package/docs/target-and-instance.md +83 -0
- package/docs/tool-discovery.md +104 -0
- package/docs/tool-execution.md +178 -0
- package/extensions/cinemachine/bridge/domains/cinemachine.ts +115 -0
- package/extensions/cinemachine/docs/cinemachine.md +50 -0
- package/extensions/cinemachine/extension.json +129 -0
- package/extensions/cinemachine/unitypkg/Editor/Cinemachine/CinemachineExtensionToolSupport.cs +15 -0
- package/extensions/cinemachine/unitypkg/Editor/Cinemachine/CinemachineToolSupport.cs +854 -0
- package/extensions/cinemachine/unitypkg/Editor/Cinemachine/aim.cs +96 -0
- package/extensions/cinemachine/unitypkg/Editor/Cinemachine/blend.cs +140 -0
- package/extensions/cinemachine/unitypkg/Editor/Cinemachine/body.cs +96 -0
- package/extensions/cinemachine/unitypkg/Editor/Cinemachine/brain-ensure.cs +16 -0
- package/extensions/cinemachine/unitypkg/Editor/Cinemachine/brain-status.cs +12 -0
- package/extensions/cinemachine/unitypkg/Editor/Cinemachine/create.cs +147 -0
- package/extensions/cinemachine/unitypkg/Editor/Cinemachine/extension-add.cs +13 -0
- package/extensions/cinemachine/unitypkg/Editor/Cinemachine/extension-list.cs +13 -0
- package/extensions/cinemachine/unitypkg/Editor/Cinemachine/extension-remove.cs +13 -0
- package/extensions/cinemachine/unitypkg/Editor/Cinemachine/lens.cs +142 -0
- package/extensions/cinemachine/unitypkg/Editor/Cinemachine/noise.cs +126 -0
- package/extensions/cinemachine/unitypkg/Editor/Cinemachine/ping.cs +43 -0
- package/extensions/cinemachine/unitypkg/Editor/Cinemachine/priority.cs +113 -0
- package/extensions/cinemachine/unitypkg/Editor/Cinemachine/target.cs +84 -0
- package/extensions/cinemachine/unitypkg/UnityCli.Extensions.Cinemachine.Editor.asmdef +18 -0
- package/extensions/hdrp/bridge/domains/hdrp.ts +41 -0
- package/extensions/hdrp/docs/hdrp.md +15 -0
- package/extensions/hdrp/extension.json +31 -0
- package/extensions/hdrp/unitypkg/Editor/Hdrp/HdrpToolSupport.cs +607 -0
- package/extensions/hdrp/unitypkg/Editor/Hdrp/settings-get.cs +29 -0
- package/extensions/hdrp/unitypkg/Editor/Hdrp/settings-set.cs +47 -0
- package/extensions/hdrp/unitypkg/Editor/Hdrp/volume-add-effect.cs +28 -0
- package/extensions/hdrp/unitypkg/Editor/Hdrp/volume-create.cs +28 -0
- package/extensions/hdrp/unitypkg/Editor/Hdrp/volume-info.cs +25 -0
- package/extensions/hdrp/unitypkg/Editor/Hdrp/volume-list.cs +25 -0
- package/extensions/hdrp/unitypkg/Editor/Hdrp/volume-set.cs +28 -0
- package/extensions/hdrp/unitypkg/UnityCli.Extensions.Hdrp.Editor.asmdef +19 -0
- package/extensions/probuilder/bridge/domains/probuilder.ts +386 -0
- package/extensions/probuilder/docs/probuilder.md +125 -0
- package/extensions/probuilder/extension.json +291 -0
- package/extensions/probuilder/unitypkg/Editor/ProBuilder/ProBuilderAppendCompletionProof.cs +254 -0
- package/extensions/probuilder/unitypkg/Editor/ProBuilder/ProBuilderAtomicReadback.cs +293 -0
- package/extensions/probuilder/unitypkg/Editor/ProBuilder/ProBuilderBevelCompletionProof.cs +299 -0
- package/extensions/probuilder/unitypkg/Editor/ProBuilder/ProBuilderCanonicalMeshSnapshot.cs +951 -0
- package/extensions/probuilder/unitypkg/Editor/ProBuilder/ProBuilderConnectCompletionProof.cs +407 -0
- package/extensions/probuilder/unitypkg/Editor/ProBuilder/ProBuilderEdgeCompletionProof.cs +318 -0
- package/extensions/probuilder/unitypkg/Editor/ProBuilder/ProBuilderErrors.cs +83 -0
- package/extensions/probuilder/unitypkg/Editor/ProBuilder/ProBuilderFaceCompletionProof.cs +152 -0
- package/extensions/probuilder/unitypkg/Editor/ProBuilder/ProBuilderFaceExtrudeCompletionProof.cs +283 -0
- package/extensions/probuilder/unitypkg/Editor/ProBuilder/ProBuilderFlipCompletionProof.cs +170 -0
- package/extensions/probuilder/unitypkg/Editor/ProBuilder/ProBuilderInput.cs +85 -0
- package/extensions/probuilder/unitypkg/Editor/ProBuilder/ProBuilderInsertCompletionProof.cs +674 -0
- package/extensions/probuilder/unitypkg/Editor/ProBuilder/ProBuilderOperationProof.cs +137 -0
- package/extensions/probuilder/unitypkg/Editor/ProBuilder/ProBuilderReflection.cs +1064 -0
- package/extensions/probuilder/unitypkg/Editor/ProBuilder/ProBuilderRefreshUvProof.cs +53 -0
- package/extensions/probuilder/unitypkg/Editor/ProBuilder/ProBuilderSceneTool.cs +184 -0
- package/extensions/probuilder/unitypkg/Editor/ProBuilder/ProBuilderShapeTopologyRecords.g.cs +82 -0
- package/extensions/probuilder/unitypkg/Editor/ProBuilder/ProBuilderVertexObjectCompletionProof.cs +346 -0
- package/extensions/probuilder/unitypkg/Editor/ProBuilder/append-vertices-to-edge.cs +118 -0
- package/extensions/probuilder/unitypkg/Editor/ProBuilder/auto-smooth.cs +104 -0
- package/extensions/probuilder/unitypkg/Editor/ProBuilder/bevel-edges.cs +119 -0
- package/extensions/probuilder/unitypkg/Editor/ProBuilder/bridge-edges.cs +113 -0
- package/extensions/probuilder/unitypkg/Editor/ProBuilder/center-pivot.cs +43 -0
- package/extensions/probuilder/unitypkg/Editor/ProBuilder/combine-meshes.cs +58 -0
- package/extensions/probuilder/unitypkg/Editor/ProBuilder/connect-elements.cs +128 -0
- package/extensions/probuilder/unitypkg/Editor/ProBuilder/convert-to-probuilder.cs +40 -0
- package/extensions/probuilder/unitypkg/Editor/ProBuilder/create-poly-shape.cs +55 -0
- package/extensions/probuilder/unitypkg/Editor/ProBuilder/create-polygon.cs +28 -0
- package/extensions/probuilder/unitypkg/Editor/ProBuilder/create-shape.cs +168 -0
- package/extensions/probuilder/unitypkg/Editor/ProBuilder/delete-faces.cs +42 -0
- package/extensions/probuilder/unitypkg/Editor/ProBuilder/detach-faces.cs +46 -0
- package/extensions/probuilder/unitypkg/Editor/ProBuilder/duplicate-and-flip.cs +100 -0
- package/extensions/probuilder/unitypkg/Editor/ProBuilder/extrude-edges.cs +118 -0
- package/extensions/probuilder/unitypkg/Editor/ProBuilder/extrude-faces.cs +110 -0
- package/extensions/probuilder/unitypkg/Editor/ProBuilder/flip-normals.cs +102 -0
- package/extensions/probuilder/unitypkg/Editor/ProBuilder/freeze-transform.cs +45 -0
- package/extensions/probuilder/unitypkg/Editor/ProBuilder/insert-vertex.cs +132 -0
- package/extensions/probuilder/unitypkg/Editor/ProBuilder/merge-faces.cs +44 -0
- package/extensions/probuilder/unitypkg/Editor/ProBuilder/merge-objects.cs +130 -0
- package/extensions/probuilder/unitypkg/Editor/ProBuilder/merge-vertices.cs +109 -0
- package/extensions/probuilder/unitypkg/Editor/ProBuilder/mesh-info.cs +117 -0
- package/extensions/probuilder/unitypkg/Editor/ProBuilder/move-vertices.cs +33 -0
- package/extensions/probuilder/unitypkg/Editor/ProBuilder/ping.cs +51 -0
- package/extensions/probuilder/unitypkg/Editor/ProBuilder/repair-mesh.cs +40 -0
- package/extensions/probuilder/unitypkg/Editor/ProBuilder/select-faces.cs +161 -0
- package/extensions/probuilder/unitypkg/Editor/ProBuilder/set-face-color.cs +24 -0
- package/extensions/probuilder/unitypkg/Editor/ProBuilder/set-face-material.cs +23 -0
- package/extensions/probuilder/unitypkg/Editor/ProBuilder/set-face-uvs.cs +28 -0
- package/extensions/probuilder/unitypkg/Editor/ProBuilder/set-pivot.cs +42 -0
- package/extensions/probuilder/unitypkg/Editor/ProBuilder/set-smoothing.cs +23 -0
- package/extensions/probuilder/unitypkg/Editor/ProBuilder/split-vertices.cs +64 -0
- package/extensions/probuilder/unitypkg/Editor/ProBuilder/subdivide.cs +111 -0
- package/extensions/probuilder/unitypkg/Editor/ProBuilder/validate-mesh.cs +75 -0
- package/extensions/probuilder/unitypkg/Editor/ProBuilder/weld-vertices.cs +112 -0
- package/extensions/probuilder/unitypkg/UnityCli.Extensions.ProBuilder.Editor.asmdef +25 -0
- package/extensions/urp/bridge/domains/urp.ts +62 -0
- package/extensions/urp/docs/urp.md +20 -0
- package/extensions/urp/extension.json +41 -0
- package/extensions/urp/unitypkg/Editor/Urp/UrpFeatureToolSupport.cs +336 -0
- package/extensions/urp/unitypkg/Editor/Urp/UrpToolSupport.cs +801 -0
- package/extensions/urp/unitypkg/Editor/Urp/feature-add.cs +12 -0
- package/extensions/urp/unitypkg/Editor/Urp/feature-configure.cs +12 -0
- package/extensions/urp/unitypkg/Editor/Urp/feature-list.cs +12 -0
- package/extensions/urp/unitypkg/Editor/Urp/feature-remove.cs +12 -0
- package/extensions/urp/unitypkg/Editor/Urp/feature-toggle.cs +12 -0
- package/extensions/urp/unitypkg/Editor/Urp/settings-get.cs +27 -0
- package/extensions/urp/unitypkg/Editor/Urp/settings-set.cs +47 -0
- package/extensions/urp/unitypkg/Editor/Urp/volume-add-effect.cs +33 -0
- package/extensions/urp/unitypkg/Editor/Urp/volume-create.cs +33 -0
- package/extensions/urp/unitypkg/Editor/Urp/volume-info.cs +31 -0
- package/extensions/urp/unitypkg/Editor/Urp/volume-list.cs +39 -0
- package/extensions/urp/unitypkg/Editor/Urp/volume-set.cs +33 -0
- package/extensions/urp/unitypkg/UnityCli.Extensions.Urp.Editor.asmdef +19 -0
- package/extensions/vfx-graph/bridge/domains/vfx.ts +337 -0
- package/extensions/vfx-graph/docs/vfx.md +28 -0
- package/extensions/vfx-graph/extension.json +72 -0
- package/extensions/vfx-graph/unitypkg/Editor/Vfx/VfxActionToolSupport.cs +248 -0
- package/extensions/vfx-graph/unitypkg/Editor/Vfx/VfxToolSupport.cs +1325 -0
- package/extensions/vfx-graph/unitypkg/Editor/Vfx/control-pause.cs +37 -0
- package/extensions/vfx-graph/unitypkg/Editor/Vfx/control-play.cs +40 -0
- package/extensions/vfx-graph/unitypkg/Editor/Vfx/control-reinitialize.cs +37 -0
- package/extensions/vfx-graph/unitypkg/Editor/Vfx/control-set-rate.cs +36 -0
- package/extensions/vfx-graph/unitypkg/Editor/Vfx/control-set-seed.cs +42 -0
- package/extensions/vfx-graph/unitypkg/Editor/Vfx/control-stop.cs +37 -0
- package/extensions/vfx-graph/unitypkg/Editor/Vfx/effect-add.cs +55 -0
- package/extensions/vfx-graph/unitypkg/Editor/Vfx/effect-assign.cs +44 -0
- package/extensions/vfx-graph/unitypkg/Editor/Vfx/effect-info.cs +30 -0
- package/extensions/vfx-graph/unitypkg/Editor/Vfx/graph-create.cs +62 -0
- package/extensions/vfx-graph/unitypkg/Editor/Vfx/graph-info.cs +32 -0
- package/extensions/vfx-graph/unitypkg/Editor/Vfx/line-create.cs +75 -0
- package/extensions/vfx-graph/unitypkg/Editor/Vfx/line-positions.cs +100 -0
- package/extensions/vfx-graph/unitypkg/Editor/Vfx/parameter.cs +216 -0
- package/extensions/vfx-graph/unitypkg/Editor/Vfx/particle-clear.cs +39 -0
- package/extensions/vfx-graph/unitypkg/Editor/Vfx/particle-create.cs +80 -0
- package/extensions/vfx-graph/unitypkg/Editor/Vfx/particle-emission.cs +126 -0
- package/extensions/vfx-graph/unitypkg/Editor/Vfx/particle-info.cs +55 -0
- package/extensions/vfx-graph/unitypkg/Editor/Vfx/particle-main.cs +75 -0
- package/extensions/vfx-graph/unitypkg/Editor/Vfx/particle-pause.cs +38 -0
- package/extensions/vfx-graph/unitypkg/Editor/Vfx/particle-play.cs +38 -0
- package/extensions/vfx-graph/unitypkg/Editor/Vfx/particle-shape.cs +148 -0
- package/extensions/vfx-graph/unitypkg/Editor/Vfx/particle-stop.cs +41 -0
- package/extensions/vfx-graph/unitypkg/Editor/Vfx/template-create.cs +58 -0
- package/extensions/vfx-graph/unitypkg/Editor/Vfx/template-list.cs +31 -0
- package/extensions/vfx-graph/unitypkg/Editor/Vfx/trail-create.cs +41 -0
- package/extensions/vfx-graph/unitypkg/Editor/Vfx/trail-set.cs +44 -0
- package/extensions/vfx-graph/unitypkg/UnityCli.Extensions.VfxGraph.Editor.asmdef +18 -0
- package/package.json +46 -0
- package/schemas/error-code.schema.json +70 -0
- package/schemas/extension-descriptor.schema.json +88 -0
- package/schemas/extension-manifest.schema.json +125 -0
- package/schemas/request-envelope.schema.json +34 -0
- package/schemas/response-envelope.schema.json +42 -0
- package/schemas/tool-metadata.schema.json +111 -0
- package/skills/unitycli/SKILL.md +61 -0
- package/skills/unitycli/agents/interface.yaml +30 -0
- package/skills/unitycli/evals/history/2026-08-05-governed-baseline.json +44 -0
- package/skills/unitycli/evals/output/cases.jsonl +5 -0
- package/skills/unitycli/evals/output/fixtures/feedback-scenario.json +27 -0
- package/skills/unitycli/evals/output/schema.json +32 -0
- package/skills/unitycli/evals/semantic_config.json +46 -0
- package/skills/unitycli/evals/trigger_cases.json +39 -0
- package/skills/unitycli/examples/feedback-event.input.json +8 -0
- package/skills/unitycli/examples/feedback-record.output.json +12 -0
- package/skills/unitycli/manifest.json +112 -0
- package/skills/unitycli/references/custom-tools.md +111 -0
- package/skills/unitycli/references/feedback.md +59 -0
- package/skills/unitycli/references/operation-protocol.md +83 -0
- package/skills/unitycli/reports/output_quality_scorecard.md +56 -0
- package/skills/unitycli/reports/trust-report.md +57 -0
- package/skills/unitycli/scripts/record-feedback.ps1 +210 -0
- package/skills/unitycli/security/network_policy.json +18 -0
- package/skills/unitycli/security/permission_policy.json +40 -0
- package/unitypkg/Editor/Bridge/BridgeCommandContext.cs +64 -0
- package/unitypkg/Editor/Bridge/BridgeCommandException.cs +39 -0
- package/unitypkg/Editor/Bridge/BridgeCommandRegistry.cs +172 -0
- package/unitypkg/Editor/Bridge/BridgeHttpServer.cs +534 -0
- package/unitypkg/Editor/Bridge/BridgeResponse.cs +58 -0
- package/unitypkg/Editor/Bridge/BridgeWorkQueue.cs +325 -0
- package/unitypkg/Editor/BridgeStartupStateMachine.cs +81 -0
- package/unitypkg/Editor/Commands/ProjectToolCommands.cs +43 -0
- package/unitypkg/Editor/Commands/RuntimeToolCommands.cs +43 -0
- package/unitypkg/Editor/Generated/UnityCliToolCompletionRegistry.g.cs +428 -0
- package/unitypkg/Editor/Infrastructure/CodeExecSupport.cs +664 -0
- package/unitypkg/Editor/Infrastructure/RegistryOwnershipResolver.cs +148 -0
- package/unitypkg/Editor/Infrastructure/UnityCliActiveOperation.cs +411 -0
- package/unitypkg/Editor/Infrastructure/UnityCliAdmission.cs +485 -0
- package/unitypkg/Editor/Infrastructure/UnityCliArtifacts.cs +110 -0
- package/unitypkg/Editor/Infrastructure/UnityCliAssetRefreshCoordinator.cs +106 -0
- package/unitypkg/Editor/Infrastructure/UnityCliBridgeHelpers.cs +155 -0
- package/unitypkg/Editor/Infrastructure/UnityCliCanonicalProjectPath.cs +325 -0
- package/unitypkg/Editor/Infrastructure/UnityCliCompilationEventBroker.cs +192 -0
- package/unitypkg/Editor/Infrastructure/UnityCliCompileCoordinator.cs +271 -0
- package/unitypkg/Editor/Infrastructure/UnityCliCompletionProbe.cs +515 -0
- package/unitypkg/Editor/Infrastructure/UnityCliEditorStateSnapshot.cs +84 -0
- package/unitypkg/Editor/Infrastructure/UnityCliInstanceRegistry.cs +558 -0
- package/unitypkg/Editor/Infrastructure/UnityCliJson.cs +155 -0
- package/unitypkg/Editor/Infrastructure/UnityCliLargeOutput.cs +128 -0
- package/unitypkg/Editor/Infrastructure/UnityCliLiveBuildCoordinator.cs +230 -0
- package/unitypkg/Editor/Infrastructure/UnityCliLiveRefreshCoordinator.cs +164 -0
- package/unitypkg/Editor/Infrastructure/UnityCliLog.cs +127 -0
- package/unitypkg/Editor/Infrastructure/UnityCliNavMeshBakeCoordinator.cs +2073 -0
- package/unitypkg/Editor/Infrastructure/UnityCliObjectPatch.cs +193 -0
- package/unitypkg/Editor/Infrastructure/UnityCliObjectRef.cs +278 -0
- package/unitypkg/Editor/Infrastructure/UnityCliObjectSerializer.cs +620 -0
- package/unitypkg/Editor/Infrastructure/UnityCliOcclusionBakeCoordinator.cs +1739 -0
- package/unitypkg/Editor/Infrastructure/UnityCliOperationCoordinator.cs +828 -0
- package/unitypkg/Editor/Infrastructure/UnityCliPackageEmbedCoordinator.cs +147 -0
- package/unitypkg/Editor/Infrastructure/UnityCliPackageResolveCoordinator.cs +454 -0
- package/unitypkg/Editor/Infrastructure/UnityCliPackageResolveState.cs +561 -0
- package/unitypkg/Editor/Infrastructure/UnityCliPipelineHandoff.cs +742 -0
- package/unitypkg/Editor/Infrastructure/UnityCliProjectSettings.cs +92 -0
- package/unitypkg/Editor/Infrastructure/UnityCliProtocolRequest.cs +116 -0
- package/unitypkg/Editor/Infrastructure/UnityCliReflection.cs +477 -0
- package/unitypkg/Editor/Infrastructure/UnityCliReloadOperation.cs +664 -0
- package/unitypkg/Editor/Infrastructure/UnityCliRequestDigest.cs +34 -0
- package/unitypkg/Editor/Infrastructure/UnityCliRuntimeBuildInjection.cs +121 -0
- package/unitypkg/Editor/Infrastructure/UnityCliRuntimeExecutor.cs +391 -0
- package/unitypkg/Editor/Infrastructure/UnityCliSceneMutation.cs +84 -0
- package/unitypkg/Editor/Infrastructure/UnityCliScriptableObjectHelpers.cs +235 -0
- package/unitypkg/Editor/Infrastructure/UnityCliSerializer.cs +580 -0
- package/unitypkg/Editor/Infrastructure/UnityCliSessionMutationLease.cs +568 -0
- package/unitypkg/Editor/Infrastructure/UnityCliStateIO.cs +73 -0
- package/unitypkg/Editor/Infrastructure/UnityCliTestRunCoordinator.cs +598 -0
- package/unitypkg/Editor/Infrastructure/UnityCliTransactionLog.cs +112 -0
- package/unitypkg/Editor/Infrastructure/UnityCliValueConverter.cs +146 -0
- package/unitypkg/Editor/Infrastructure/UnityCliWaiter.cs +716 -0
- package/unitypkg/Editor/ProjectTools/IUnityCliTool.cs +152 -0
- package/unitypkg/Editor/ProjectTools/OfficialAttributeToolRegistry.cs +992 -0
- package/unitypkg/Editor/ProjectTools/ProjectToolRegistry.cs +938 -0
- package/unitypkg/Editor/ProjectTools/ProjectToolSchemaValidator.cs +258 -0
- package/unitypkg/Editor/ProjectTools/RegisteredTool.cs +75 -0
- package/unitypkg/Editor/ProjectTools/UnityCliProjectToolContext.cs +68 -0
- package/unitypkg/Editor/ProjectTools/UnityCliSchemaDeriver.cs +297 -0
- package/unitypkg/Editor/Protocol/ProtocolEnvelopeFactory.cs +92 -0
- package/unitypkg/Editor/Protocol/envelope.cs +50 -0
- package/unitypkg/Editor/Roslyn/LICENSE.txt +23 -0
- package/unitypkg/Editor/Roslyn/Microsoft.CodeAnalysis.CSharp.dll +0 -0
- package/unitypkg/Editor/Roslyn/Microsoft.CodeAnalysis.dll +0 -0
- package/unitypkg/Editor/Roslyn/System.Collections.Immutable.dll +0 -0
- package/unitypkg/Editor/Roslyn/System.Reflection.Metadata.dll +0 -0
- package/unitypkg/Editor/Tools/animation/AnimationToolSupport.cs +335 -0
- package/unitypkg/Editor/Tools/animation/AnimatorRuntimeToolSupport.cs +24 -0
- package/unitypkg/Editor/Tools/animation/animator/crossfade.cs +117 -0
- package/unitypkg/Editor/Tools/animation/animator/get-info.cs +24 -0
- package/unitypkg/Editor/Tools/animation/animator/get-parameter.cs +36 -0
- package/unitypkg/Editor/Tools/animation/animator/set-enabled.cs +33 -0
- package/unitypkg/Editor/Tools/animation/animator/set-parameter.cs +71 -0
- package/unitypkg/Editor/Tools/animation/animator/set-speed.cs +33 -0
- package/unitypkg/Editor/Tools/animation/clip/create.cs +48 -0
- package/unitypkg/Editor/Tools/animation/clip/modify.cs +43 -0
- package/unitypkg/Editor/Tools/animation/clip.cs +23 -0
- package/unitypkg/Editor/Tools/animation/play.cs +41 -0
- package/unitypkg/Editor/Tools/animation/state.cs +25 -0
- package/unitypkg/Editor/Tools/animation/stop.cs +45 -0
- package/unitypkg/Editor/Tools/asset/AssetImportSettingsToolSupport.cs +633 -0
- package/unitypkg/Editor/Tools/asset/AssetToolSupport.cs +253 -0
- package/unitypkg/Editor/Tools/asset/create.cs +84 -0
- package/unitypkg/Editor/Tools/asset/delete.cs +88 -0
- package/unitypkg/Editor/Tools/asset/duplicate.cs +68 -0
- package/unitypkg/Editor/Tools/asset/get-components.cs +177 -0
- package/unitypkg/Editor/Tools/asset/get-data.cs +73 -0
- package/unitypkg/Editor/Tools/asset/import-settings/set.cs +127 -0
- package/unitypkg/Editor/Tools/asset/import-settings.cs +54 -0
- package/unitypkg/Editor/Tools/asset/import.cs +132 -0
- package/unitypkg/Editor/Tools/asset/info.cs +48 -0
- package/unitypkg/Editor/Tools/asset/modify.cs +69 -0
- package/unitypkg/Editor/Tools/asset/move.cs +70 -0
- package/unitypkg/Editor/Tools/asset/preview.cs +86 -0
- package/unitypkg/Editor/Tools/asset/rename.cs +84 -0
- package/unitypkg/Editor/Tools/asset/search-built-in.cs +90 -0
- package/unitypkg/Editor/Tools/asset/search.cs +83 -0
- package/unitypkg/Editor/Tools/build/BuildSceneStateTool.cs +37 -0
- package/unitypkg/Editor/Tools/build/BuildSettingsToolSupport.cs +4 -0
- package/unitypkg/Editor/Tools/build/BuildToolDtos.cs +15 -0
- package/unitypkg/Editor/Tools/build/BuildToolSupport.cs +111 -0
- package/unitypkg/Editor/Tools/build/platform/get.cs +12 -0
- package/unitypkg/Editor/Tools/build/platform/set.cs +45 -0
- package/unitypkg/Editor/Tools/build/profile/create.cs +44 -0
- package/unitypkg/Editor/Tools/build/profile/list.cs +12 -0
- package/unitypkg/Editor/Tools/build/profile/modify.cs +42 -0
- package/unitypkg/Editor/Tools/build/profile/switch.cs +30 -0
- package/unitypkg/Editor/Tools/build/scene/add.cs +45 -0
- package/unitypkg/Editor/Tools/build/scene/disable.cs +3 -0
- package/unitypkg/Editor/Tools/build/scene/enable.cs +4 -0
- package/unitypkg/Editor/Tools/build/scene/list.cs +4 -0
- package/unitypkg/Editor/Tools/build/scene/remove.cs +29 -0
- package/unitypkg/Editor/Tools/build/settings/get.cs +3 -0
- package/unitypkg/Editor/Tools/build/settings/set.cs +74 -0
- package/unitypkg/Editor/Tools/camera/CameraToolSupport.cs +292 -0
- package/unitypkg/Editor/Tools/camera/create.cs +114 -0
- package/unitypkg/Editor/Tools/camera/info.cs +49 -0
- package/unitypkg/Editor/Tools/camera/lens.cs +119 -0
- package/unitypkg/Editor/Tools/camera/list.cs +52 -0
- package/unitypkg/Editor/Tools/camera/multiview.cs +96 -0
- package/unitypkg/Editor/Tools/camera/screenshot.cs +65 -0
- package/unitypkg/Editor/Tools/camera/target.cs +94 -0
- package/unitypkg/Editor/Tools/component/add.cs +125 -0
- package/unitypkg/Editor/Tools/component/get.cs +73 -0
- package/unitypkg/Editor/Tools/component/list-types.cs +90 -0
- package/unitypkg/Editor/Tools/component/modify.cs +103 -0
- package/unitypkg/Editor/Tools/component/remove.cs +147 -0
- package/unitypkg/Editor/Tools/component/set.cs +93 -0
- package/unitypkg/Editor/Tools/console/clear.cs +38 -0
- package/unitypkg/Editor/Tools/console/get.cs +28 -0
- package/unitypkg/Editor/Tools/controller/add-blend-tree-child.cs +88 -0
- package/unitypkg/Editor/Tools/controller/add-layer.cs +43 -0
- package/unitypkg/Editor/Tools/controller/add-parameter.cs +51 -0
- package/unitypkg/Editor/Tools/controller/add-state.cs +44 -0
- package/unitypkg/Editor/Tools/controller/add-transition.cs +71 -0
- package/unitypkg/Editor/Tools/controller/assign.cs +38 -0
- package/unitypkg/Editor/Tools/controller/create-blend-tree-1d.cs +40 -0
- package/unitypkg/Editor/Tools/controller/create-blend-tree-2d.cs +42 -0
- package/unitypkg/Editor/Tools/controller/create.cs +31 -0
- package/unitypkg/Editor/Tools/controller/get-info.cs +27 -0
- package/unitypkg/Editor/Tools/controller/remove-layer.cs +57 -0
- package/unitypkg/Editor/Tools/controller/set-layer-weight.cs +42 -0
- package/unitypkg/Editor/Tools/diagnose/preflight.cs +269 -0
- package/unitypkg/Editor/Tools/editor/EditorActionToolSupport.cs +117 -0
- package/unitypkg/Editor/Tools/editor/EditorSearchToolSupport.cs +146 -0
- package/unitypkg/Editor/Tools/editor/EditorToolSupport.cs +132 -0
- package/unitypkg/Editor/Tools/editor/EditorWindowFocusToolSupport.cs +194 -0
- package/unitypkg/Editor/Tools/editor/active-tool/set.cs +33 -0
- package/unitypkg/Editor/Tools/editor/active-tool.cs +100 -0
- package/unitypkg/Editor/Tools/editor/autotick/set.cs +102 -0
- package/unitypkg/Editor/Tools/editor/console.cs +26 -0
- package/unitypkg/Editor/Tools/editor/focus.cs +80 -0
- package/unitypkg/Editor/Tools/editor/menu-items.cs +50 -0
- package/unitypkg/Editor/Tools/editor/menu.cs +53 -0
- package/unitypkg/Editor/Tools/editor/pause.cs +38 -0
- package/unitypkg/Editor/Tools/editor/play.cs +43 -0
- package/unitypkg/Editor/Tools/editor/redo.cs +56 -0
- package/unitypkg/Editor/Tools/editor/resolution.cs +34 -0
- package/unitypkg/Editor/Tools/editor/search.cs +55 -0
- package/unitypkg/Editor/Tools/editor/selection/set.cs +37 -0
- package/unitypkg/Editor/Tools/editor/selection.cs +153 -0
- package/unitypkg/Editor/Tools/editor/stop.cs +43 -0
- package/unitypkg/Editor/Tools/editor/tool-states.cs +140 -0
- package/unitypkg/Editor/Tools/editor/undo.cs +56 -0
- package/unitypkg/Editor/Tools/editor/windows.cs +87 -0
- package/unitypkg/Editor/Tools/extension/status.cs +87 -0
- package/unitypkg/Editor/Tools/go/GameObjectToolSupport.cs +524 -0
- package/unitypkg/Editor/Tools/go/create.cs +333 -0
- package/unitypkg/Editor/Tools/go/delete.cs +87 -0
- package/unitypkg/Editor/Tools/go/duplicate.cs +76 -0
- package/unitypkg/Editor/Tools/go/find.cs +152 -0
- package/unitypkg/Editor/Tools/go/inspect.cs +49 -0
- package/unitypkg/Editor/Tools/go/look-at.cs +76 -0
- package/unitypkg/Editor/Tools/go/modify.cs +156 -0
- package/unitypkg/Editor/Tools/go/move-relative.cs +74 -0
- package/unitypkg/Editor/Tools/go/set-parent.cs +84 -0
- package/unitypkg/Editor/Tools/graphics/GraphicsToolSupport.cs +396 -0
- package/unitypkg/Editor/Tools/graphics/bake-cancel.cs +27 -0
- package/unitypkg/Editor/Tools/graphics/bake-clear.cs +31 -0
- package/unitypkg/Editor/Tools/graphics/bake-reflection-probe.cs +35 -0
- package/unitypkg/Editor/Tools/graphics/bake-settings.cs +131 -0
- package/unitypkg/Editor/Tools/graphics/bake-start.cs +27 -0
- package/unitypkg/Editor/Tools/graphics/bake-status.cs +31 -0
- package/unitypkg/Editor/Tools/graphics/light-probe-group.cs +56 -0
- package/unitypkg/Editor/Tools/graphics/pipeline-info.cs +19 -0
- package/unitypkg/Editor/Tools/graphics/pipeline-quality.cs +24 -0
- package/unitypkg/Editor/Tools/graphics/pipeline-settings.cs +46 -0
- package/unitypkg/Editor/Tools/graphics/probe-positions.cs +58 -0
- package/unitypkg/Editor/Tools/graphics/quality.cs +85 -0
- package/unitypkg/Editor/Tools/graphics/reflection-probe.cs +73 -0
- package/unitypkg/Editor/Tools/graphics/scene-debug.cs +37 -0
- package/unitypkg/Editor/Tools/graphics/settings.cs +104 -0
- package/unitypkg/Editor/Tools/graphics/skybox-get.cs +33 -0
- package/unitypkg/Editor/Tools/graphics/skybox-set-ambient.cs +24 -0
- package/unitypkg/Editor/Tools/graphics/skybox-set-fog.cs +24 -0
- package/unitypkg/Editor/Tools/graphics/skybox-set-material.cs +33 -0
- package/unitypkg/Editor/Tools/graphics/skybox-set-properties.cs +51 -0
- package/unitypkg/Editor/Tools/graphics/skybox-set-reflection.cs +31 -0
- package/unitypkg/Editor/Tools/graphics/skybox-set-sun.cs +35 -0
- package/unitypkg/Editor/Tools/graphics/stats-counters.cs +28 -0
- package/unitypkg/Editor/Tools/graphics/stats-memory.cs +21 -0
- package/unitypkg/Editor/Tools/graphics/stats.cs +17 -0
- package/unitypkg/Editor/Tools/graphics/volume.cs +59 -0
- package/unitypkg/Editor/Tools/instances/list.cs +71 -0
- package/unitypkg/Editor/Tools/material/MaterialToolSupport.cs +401 -0
- package/unitypkg/Editor/Tools/material/assign.cs +124 -0
- package/unitypkg/Editor/Tools/material/create.cs +82 -0
- package/unitypkg/Editor/Tools/material/info.cs +55 -0
- package/unitypkg/Editor/Tools/material/set-renderer-color.cs +108 -0
- package/unitypkg/Editor/Tools/material/set.cs +114 -0
- package/unitypkg/Editor/Tools/navmesh/NavMeshToolSupport.cs +404 -0
- package/unitypkg/Editor/Tools/navmesh/bake-clear.cs +70 -0
- package/unitypkg/Editor/Tools/navmesh/settings/set.cs +73 -0
- package/unitypkg/Editor/Tools/navmesh/settings.cs +37 -0
- package/unitypkg/Editor/Tools/object/ObjectToolSupport.cs +99 -0
- package/unitypkg/Editor/Tools/object/get-data.cs +69 -0
- package/unitypkg/Editor/Tools/object/modify.cs +126 -0
- package/unitypkg/Editor/Tools/occlusion/OcclusionToolSupport.cs +422 -0
- package/unitypkg/Editor/Tools/occlusion/bake-clear.cs +67 -0
- package/unitypkg/Editor/Tools/physics/PhysicsJointToolSupport.cs +13 -0
- package/unitypkg/Editor/Tools/physics/PhysicsToolSupport.cs +389 -0
- package/unitypkg/Editor/Tools/physics/assign-material.cs +88 -0
- package/unitypkg/Editor/Tools/physics/collision-matrix.cs +90 -0
- package/unitypkg/Editor/Tools/physics/force.cs +127 -0
- package/unitypkg/Editor/Tools/physics/joint/add.cs +99 -0
- package/unitypkg/Editor/Tools/physics/joint/remove.cs +4 -0
- package/unitypkg/Editor/Tools/physics/linecast.cs +59 -0
- package/unitypkg/Editor/Tools/physics/material.cs +73 -0
- package/unitypkg/Editor/Tools/physics/overlap.cs +84 -0
- package/unitypkg/Editor/Tools/physics/raycast-all.cs +67 -0
- package/unitypkg/Editor/Tools/physics/raycast.cs +96 -0
- package/unitypkg/Editor/Tools/physics/rigidbody.cs +116 -0
- package/unitypkg/Editor/Tools/physics/settings.cs +116 -0
- package/unitypkg/Editor/Tools/physics/shapecast.cs +127 -0
- package/unitypkg/Editor/Tools/physics/simulation.cs +89 -0
- package/unitypkg/Editor/Tools/physics/validate.cs +67 -0
- package/unitypkg/Editor/Tools/prefab/PrefabOverrideToolSupport.cs +355 -0
- package/unitypkg/Editor/Tools/prefab/PrefabToolSupport.cs +446 -0
- package/unitypkg/Editor/Tools/prefab/create.cs +125 -0
- package/unitypkg/Editor/Tools/prefab/hierarchy.cs +157 -0
- package/unitypkg/Editor/Tools/prefab/info.cs +44 -0
- package/unitypkg/Editor/Tools/prefab/instantiate.cs +106 -0
- package/unitypkg/Editor/Tools/prefab/modify.cs +112 -0
- package/unitypkg/Editor/Tools/prefab/overrides/apply.cs +51 -0
- package/unitypkg/Editor/Tools/prefab/overrides/revert.cs +51 -0
- package/unitypkg/Editor/Tools/prefab/stage-close.cs +67 -0
- package/unitypkg/Editor/Tools/prefab/stage-open.cs +69 -0
- package/unitypkg/Editor/Tools/prefab/stage-save.cs +64 -0
- package/unitypkg/Editor/Tools/prefab/stage.cs +68 -0
- package/unitypkg/Editor/Tools/prefab/unpack.cs +80 -0
- package/unitypkg/Editor/Tools/prefab/variant/create.cs +53 -0
- package/unitypkg/Editor/Tools/profiler/ProfilerFrameDebuggerSupport.cs +68 -0
- package/unitypkg/Editor/Tools/profiler/ProfilerMemorySnapshotSupport.cs +30 -0
- package/unitypkg/Editor/Tools/profiler/ProfilerToolSupport.cs +515 -0
- package/unitypkg/Editor/Tools/profiler/areas.cs +36 -0
- package/unitypkg/Editor/Tools/profiler/capture.cs +188 -0
- package/unitypkg/Editor/Tools/profiler/clear.cs +57 -0
- package/unitypkg/Editor/Tools/profiler/counter.cs +34 -0
- package/unitypkg/Editor/Tools/profiler/deep.cs +48 -0
- package/unitypkg/Editor/Tools/profiler/export.cs +85 -0
- package/unitypkg/Editor/Tools/profiler/frame-debugger/disable.cs +53 -0
- package/unitypkg/Editor/Tools/profiler/frame-debugger/enable.cs +66 -0
- package/unitypkg/Editor/Tools/profiler/frame-debugger/events.cs +140 -0
- package/unitypkg/Editor/Tools/profiler/frame.cs +38 -0
- package/unitypkg/Editor/Tools/profiler/hierarchy.cs +183 -0
- package/unitypkg/Editor/Tools/profiler/load.cs +85 -0
- package/unitypkg/Editor/Tools/profiler/memory-snapshot/compare.cs +78 -0
- package/unitypkg/Editor/Tools/profiler/memory-snapshot/list.cs +73 -0
- package/unitypkg/Editor/Tools/profiler/memory-snapshot/take.cs +147 -0
- package/unitypkg/Editor/Tools/profiler/memory.cs +34 -0
- package/unitypkg/Editor/Tools/profiler/module-enable.cs +52 -0
- package/unitypkg/Editor/Tools/profiler/modules.cs +33 -0
- package/unitypkg/Editor/Tools/profiler/object-memory.cs +49 -0
- package/unitypkg/Editor/Tools/profiler/pause.cs +49 -0
- package/unitypkg/Editor/Tools/profiler/rendering-stats.cs +109 -0
- package/unitypkg/Editor/Tools/profiler/script-stats.cs +35 -0
- package/unitypkg/Editor/Tools/profiler/start.cs +55 -0
- package/unitypkg/Editor/Tools/profiler/status.cs +36 -0
- package/unitypkg/Editor/Tools/profiler/stop.cs +53 -0
- package/unitypkg/Editor/Tools/project/ProjectSettingsReader.cs +31 -0
- package/unitypkg/Editor/Tools/project/ProjectSettingsToolSupport.cs +757 -0
- package/unitypkg/Editor/Tools/project/ProjectTagLayerToolSupport.cs +23 -0
- package/unitypkg/Editor/Tools/project/audio-settings/set.cs +35 -0
- package/unitypkg/Editor/Tools/project/audio-settings.cs +31 -0
- package/unitypkg/Editor/Tools/project/info.cs +52 -0
- package/unitypkg/Editor/Tools/project/input-settings/set.cs +35 -0
- package/unitypkg/Editor/Tools/project/input-settings.cs +35 -0
- package/unitypkg/Editor/Tools/project/layer/add.cs +3 -0
- package/unitypkg/Editor/Tools/project/layer/remove.cs +3 -0
- package/unitypkg/Editor/Tools/project/layers.cs +61 -0
- package/unitypkg/Editor/Tools/project/player-settings/set.cs +35 -0
- package/unitypkg/Editor/Tools/project/player-settings.cs +31 -0
- package/unitypkg/Editor/Tools/project/tag/add.cs +3 -0
- package/unitypkg/Editor/Tools/project/tag/remove.cs +3 -0
- package/unitypkg/Editor/Tools/project/tags.cs +45 -0
- package/unitypkg/Editor/Tools/project/time-settings/set.cs +35 -0
- package/unitypkg/Editor/Tools/project/time-settings.cs +31 -0
- package/unitypkg/Editor/Tools/reflection/method/call.cs +114 -0
- package/unitypkg/Editor/Tools/reflection/method/find.cs +72 -0
- package/unitypkg/Editor/Tools/reflection/type/schema.cs +56 -0
- package/unitypkg/Editor/Tools/scene/SceneToolSupport.cs +181 -0
- package/unitypkg/Editor/Tools/scene/active.cs +62 -0
- package/unitypkg/Editor/Tools/scene/build-settings.cs +69 -0
- package/unitypkg/Editor/Tools/scene/create.cs +78 -0
- package/unitypkg/Editor/Tools/scene/data.cs +125 -0
- package/unitypkg/Editor/Tools/scene/gameobject/component.cs +63 -0
- package/unitypkg/Editor/Tools/scene/gameobject/components.cs +77 -0
- package/unitypkg/Editor/Tools/scene/gameobject-support.cs +101 -0
- package/unitypkg/Editor/Tools/scene/gameobject.cs +83 -0
- package/unitypkg/Editor/Tools/scene/hierarchy.cs +250 -0
- package/unitypkg/Editor/Tools/scene/list-opened.cs +77 -0
- package/unitypkg/Editor/Tools/scene/load.cs +68 -0
- package/unitypkg/Editor/Tools/scene/move-object.cs +122 -0
- package/unitypkg/Editor/Tools/scene/save.cs +231 -0
- package/unitypkg/Editor/Tools/scene/set-active.cs +76 -0
- package/unitypkg/Editor/Tools/scene/unload.cs +109 -0
- package/unitypkg/Editor/Tools/scene/validate.cs +115 -0
- package/unitypkg/Editor/Tools/scene/view-frame.cs +218 -0
- package/unitypkg/Editor/Tools/screenshot/EditorElementCaptureToolSupport.cs +181 -0
- package/unitypkg/Editor/Tools/screenshot/ScreenshotToolSupport.cs +196 -0
- package/unitypkg/Editor/Tools/screenshot/editor-element.cs +87 -0
- package/unitypkg/Editor/Tools/screenshot/game-view.cs +116 -0
- package/unitypkg/Editor/Tools/screenshot/isolated-object.cs +93 -0
- package/unitypkg/Editor/Tools/screenshot/orbit.cs +103 -0
- package/unitypkg/Editor/Tools/screenshot/scene-view.cs +99 -0
- package/unitypkg/Editor/Tools/screenshot/screen.cs +89 -0
- package/unitypkg/Editor/Tools/screenshot/surround.cs +181 -0
- package/unitypkg/Editor/Tools/scriptable-object/ScriptableObjectToolSupport.cs +196 -0
- package/unitypkg/Editor/Tools/scriptable-object/create.cs +79 -0
- package/unitypkg/Editor/Tools/scriptable-object/info.cs +49 -0
- package/unitypkg/Editor/Tools/scriptable-object/list-types.cs +103 -0
- package/unitypkg/Editor/Tools/scriptable-object/modify.cs +208 -0
- package/unitypkg/Editor/Tools/shader/ShaderToolSupport.cs +326 -0
- package/unitypkg/Editor/Tools/shader/create.cs +82 -0
- package/unitypkg/Editor/Tools/shader/delete.cs +90 -0
- package/unitypkg/Editor/Tools/shader/get-data.cs +125 -0
- package/unitypkg/Editor/Tools/shader/info.cs +48 -0
- package/unitypkg/Editor/Tools/shader/list.cs +82 -0
- package/unitypkg/Editor/Tools/shader/read.cs +84 -0
- package/unitypkg/Editor/Tools/shader/update.cs +71 -0
- package/unitypkg/Editor/Tools/tests/list.cs +98 -0
- package/unitypkg/Editor/Tools/texture/TextureToolSupport.cs +327 -0
- package/unitypkg/Editor/Tools/texture/create.cs +182 -0
- package/unitypkg/Editor/Tools/texture/delete.cs +89 -0
- package/unitypkg/Editor/Tools/texture/generate.cs +189 -0
- package/unitypkg/Editor/Tools/texture/import-settings.cs +104 -0
- package/unitypkg/Editor/Tools/texture/info.cs +50 -0
- package/unitypkg/Editor/Tools/texture/modify.cs +154 -0
- package/unitypkg/Editor/Tools/texture/sprite.cs +132 -0
- package/unitypkg/Editor/Tools/timeline/TimelineMutationToolSupport.cs +696 -0
- package/unitypkg/Editor/Tools/timeline/TimelineReadToolSupport.cs +439 -0
- package/unitypkg/Editor/Tools/timeline/TimelineToolSupport.cs +203 -0
- package/unitypkg/Editor/Tools/timeline/clip/add.cs +93 -0
- package/unitypkg/Editor/Tools/timeline/create.cs +88 -0
- package/unitypkg/Editor/Tools/timeline/info.cs +54 -0
- package/unitypkg/Editor/Tools/timeline/track/add.cs +91 -0
- package/unitypkg/Editor/Tools/ui/UiToolSupport.cs +162 -0
- package/unitypkg/Editor/Tools/ui/UiUguiToolSupport.cs +24 -0
- package/unitypkg/Editor/Tools/ui/attach-document.cs +46 -0
- package/unitypkg/Editor/Tools/ui/button/create.cs +58 -0
- package/unitypkg/Editor/Tools/ui/canvas/create.cs +40 -0
- package/unitypkg/Editor/Tools/ui/create-panel-settings.cs +44 -0
- package/unitypkg/Editor/Tools/ui/detach-document.cs +41 -0
- package/unitypkg/Editor/Tools/ui/document/create.cs +49 -0
- package/unitypkg/Editor/Tools/ui/document/delete.cs +33 -0
- package/unitypkg/Editor/Tools/ui/document/info.cs +33 -0
- package/unitypkg/Editor/Tools/ui/document/update.cs +36 -0
- package/unitypkg/Editor/Tools/ui/get-visual-tree.cs +34 -0
- package/unitypkg/Editor/Tools/ui/hierarchy.cs +27 -0
- package/unitypkg/Editor/Tools/ui/image/create.cs +47 -0
- package/unitypkg/Editor/Tools/ui/link-stylesheet.cs +54 -0
- package/unitypkg/Editor/Tools/ui/list-documents.cs +34 -0
- package/unitypkg/Editor/Tools/ui/modify-visual-element.cs +76 -0
- package/unitypkg/Editor/Tools/ui/render-preview.cs +128 -0
- package/unitypkg/Editor/Tools/ui/text/create.cs +45 -0
- package/unitypkg/Editor/Tools/ui/update-panel-settings.cs +49 -0
- package/unitypkg/Editor/UnityCliBridge.cs +431 -0
- package/unitypkg/Editor/UnityCliBridgeBuildInfo.cs +9 -0
- package/unitypkg/Runtime/Infrastructure/UnityCliRuntimeBridge.cs +580 -0
- package/unitypkg/Runtime/Infrastructure/UnityCliRuntimeJson.cs +232 -0
- package/unitypkg/Runtime/Infrastructure/UnityCliRuntimeRegistry.cs +297 -0
- package/unitypkg/Runtime/Tools/UnityCliRuntimeTools.cs +701 -0
- package/unitypkg/Runtime/UnityCli.Runtime.asmdef +14 -0
- package/unitypkg/Shared/UnityCli.Shared.asmdef +14 -0
- package/unitypkg/Shared/UnityCliAdmissionPool.cs +426 -0
- package/unitypkg/Tests/Editor/UnityCli.Editor.Tests.asmdef +15 -0
- package/unitypkg/Tests/Editor/UnityCliAdmissionPoolTests.cs +262 -0
- package/unitypkg/UnityCli.Editor.asmdef +26 -0
- package/unitypkg/package.json +11 -0
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
#if UNITY_EDITOR
|
|
2
|
+
using System.Collections.Generic;
|
|
3
|
+
using System.Linq;
|
|
4
|
+
using UnityEditor;
|
|
5
|
+
using UnityEditor.SceneManagement;
|
|
6
|
+
using UnityEngine;
|
|
7
|
+
using UnityEngine.ProBuilder;
|
|
8
|
+
using UnityEngine.ProBuilder.MeshOperations;
|
|
9
|
+
|
|
10
|
+
namespace UnityCli.ProBuilder
|
|
11
|
+
{
|
|
12
|
+
/// <summary>
|
|
13
|
+
/// probuilder.bevel-edges — 对选定边进行倒角。
|
|
14
|
+
/// </summary>
|
|
15
|
+
public class BevelEdgesTool : IUnityCliTool<BevelEdgesTool.Request, BevelEdgesTool.Result>
|
|
16
|
+
{
|
|
17
|
+
public sealed class Request
|
|
18
|
+
{
|
|
19
|
+
[UnityCliRequired] public string Target { get; set; }
|
|
20
|
+
public double? Amount { get; set; } // 可选,默认 0.1
|
|
21
|
+
public List<long> EdgeIndices { get; set; } // 可选
|
|
22
|
+
public List<EdgeRef> Edges { get; set; } // 可选
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
public sealed class EdgeRef
|
|
26
|
+
{
|
|
27
|
+
public long A { get; set; }
|
|
28
|
+
public long B { get; set; }
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
public sealed class Result
|
|
32
|
+
{
|
|
33
|
+
public long ModifiedEdgeCount { get; set; }
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
public ToolDescriptor Describe() => new()
|
|
37
|
+
{
|
|
38
|
+
Name = "probuilder.bevel-edges",
|
|
39
|
+
Summary = "Bevel selected edges of a ProBuilder mesh by a given amount.",
|
|
40
|
+
Description = "Bevel one frozen typed edge of a ProBuilder mesh by a given amount. Specify the edge by edgeIndices (an index into the unique edge list) or by one vertex-pair edge [{a,b}]. The target must use the current ProBuilder 5.2.4 serialized mesh format with initialized sharedTextures and contain exactly two non-degenerate triangular face occurrences sharing that edge; each endpoint may occur only on those faces, with no additional raw, face, or position coincidence. Its Renderer must have nonempty sharedMaterials, every face submeshIndex must be in that range, and every material slot must be used so ToMesh cannot compact slots. The 5.2.4 amount clamp must be bit-exactly the request and at least 0.001; all other requests are rejected before scene mutation because their terminal topology cannot be uniquely proven.",
|
|
41
|
+
Group = "probuilder",
|
|
42
|
+
DestructiveHint = false,
|
|
43
|
+
SideEffects = new[] { "scene-modify", "undo-stack" },
|
|
44
|
+
Target = "editor",
|
|
45
|
+
PlayModeSupport = "editor-only",
|
|
46
|
+
DefaultTimeoutMs = 10000,
|
|
47
|
+
MaxTimeoutMs = 30000,
|
|
48
|
+
Examples = new[]
|
|
49
|
+
{
|
|
50
|
+
new ToolExample { Description = "对两三角面共边倒角", Input = new Request { Target = "MyTwoTriangleWedge", Amount = 0.1, Edges = new List<EdgeRef> { new EdgeRef { A = 0, B = 1 } } } }
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
public System.Threading.Tasks.ValueTask<Result> ExecuteAsync(Request request, UnityCliProjectToolContext ctx, System.Threading.CancellationToken ct = default)
|
|
55
|
+
{
|
|
56
|
+
if (!ProBuilderReflection.IsAvailable)
|
|
57
|
+
throw ProBuilderErrors.PackageNotAvailable();
|
|
58
|
+
|
|
59
|
+
var target = request.Target;
|
|
60
|
+
var go = ProBuilderInput.ResolveTarget(target);
|
|
61
|
+
if (go == null) throw ProBuilderErrors.TargetNotFound(request.Target);
|
|
62
|
+
|
|
63
|
+
var mesh = ProBuilderReflection.GetProBuilderMesh(go);
|
|
64
|
+
if (mesh == null) throw ProBuilderErrors.OperationFailed("bevel-edges", "No ProBuilderMesh on target.");
|
|
65
|
+
|
|
66
|
+
var amount = ProBuilderOperationProof.CheckedFloat(request.Amount ?? 0.1, "amount");
|
|
67
|
+
if (amount <= 0)
|
|
68
|
+
throw ProBuilderErrors.SchemaInvalid("amount must be greater than 0 so bevel completion has observable topology.");
|
|
69
|
+
int[] edgeIndices = request.EdgeIndices?.Select(i => ProBuilderOperationProof.CheckedInt(i, "edgeIndices")).ToArray();
|
|
70
|
+
ProBuilderInput.EdgePair[] edgePairs = request.Edges?.Select(e => new ProBuilderInput.EdgePair { a = ProBuilderOperationProof.CheckedInt(e.A, "edges.a"), b = ProBuilderOperationProof.CheckedInt(e.B, "edges.b") }).ToArray();
|
|
71
|
+
|
|
72
|
+
if ((edgeIndices == null || edgeIndices.Length == 0) && (edgePairs == null || edgePairs.Length == 0))
|
|
73
|
+
throw ProBuilderErrors.SchemaInvalid("edgeIndices or edges parameter is required for bevel-edges.");
|
|
74
|
+
|
|
75
|
+
var edgeArray = ProBuilderOperationProof.ValidateEdges(mesh, edgeIndices, edgePairs);
|
|
76
|
+
var frozenEdges = edgeArray as Edge[];
|
|
77
|
+
var typedMesh = mesh as ProBuilderMesh;
|
|
78
|
+
if (frozenEdges == null || typedMesh == null || frozenEdges.Length != edgeArray.Length)
|
|
79
|
+
throw ProBuilderErrors.SchemaInvalid("bevel-edges requires a typed ProBuilder Edge[] selection.");
|
|
80
|
+
var plan = ProBuilderBevelCompletionProof.Capture(go, typedMesh, frozenEdges, amount);
|
|
81
|
+
if (plan == null)
|
|
82
|
+
throw ProBuilderErrors.SchemaInvalid("bevel-edges only accepts the deterministic 5.2.4 two-sided manifold domain; this request cannot be uniquely planned before mutation.");
|
|
83
|
+
ctx.CommitEffect();
|
|
84
|
+
try
|
|
85
|
+
{
|
|
86
|
+
Undo.RecordObject(go, "ProBuilder Bevel Edges");
|
|
87
|
+
try { Bevel.BevelEdges(typedMesh, plan.FrozenEdges, amount); }
|
|
88
|
+
catch (UnityCliBridge.BridgeCommandException) { throw; }
|
|
89
|
+
catch { throw ProBuilderErrors.OutcomeUnknown("bevel-edges", "invoke", "Bevel.BevelEdges threw after the effect barrier."); }
|
|
90
|
+
|
|
91
|
+
if (!ProBuilderReflection.RefreshMeshPreservingVertexPayload(typedMesh))
|
|
92
|
+
throw ProBuilderErrors.OutcomeUnknown("bevel-edges", "readback", "ProBuilder mesh payload-preserving refresh failed after effect.");
|
|
93
|
+
EditorSceneManager.MarkSceneDirty(go.scene);
|
|
94
|
+
|
|
95
|
+
try
|
|
96
|
+
{
|
|
97
|
+
// effect 前 identity fresh-resolve 后完整 capture;任何比较或 capture 异常都是未知终态。
|
|
98
|
+
var freshMesh = CanonicalMeshSnapshot.ResolveFreshMesh(target, plan.Before.Identity);
|
|
99
|
+
var after = freshMesh == null ? null : CanonicalMeshSnapshot.Capture(freshMesh.gameObject);
|
|
100
|
+
if (!ProBuilderBevelCompletionProof.Matches(plan, after))
|
|
101
|
+
{
|
|
102
|
+
var mismatch = ProBuilderBevelCompletionProof.Mismatch(plan, after) ?? "unknown";
|
|
103
|
+
throw ProBuilderErrors.OutcomeUnknown("bevel-edges", "postcondition", "Fresh mesh does not equal the frozen 5.2.4 bevel terminal plan at " + mismatch + ".");
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
catch (UnityCliBridge.BridgeCommandException) { throw; }
|
|
107
|
+
catch
|
|
108
|
+
{
|
|
109
|
+
throw ProBuilderErrors.OutcomeUnknown("bevel-edges", "postcondition", "Bevel terminal-state readback threw after the effect barrier.");
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
return new System.Threading.Tasks.ValueTask<Result>(new Result { ModifiedEdgeCount = plan.FrozenEdges.Length });
|
|
113
|
+
}
|
|
114
|
+
catch (UnityCliBridge.BridgeCommandException) { throw; }
|
|
115
|
+
catch (System.Exception exception) { throw ProBuilderErrors.OutcomeUnknown("bevel-edges", "postcondition", exception.Message); }
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
#endif
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
#if UNITY_EDITOR
|
|
2
|
+
using UnityEditor;
|
|
3
|
+
using UnityEditor.SceneManagement;
|
|
4
|
+
using UnityEngine;
|
|
5
|
+
|
|
6
|
+
namespace UnityCli.ProBuilder
|
|
7
|
+
{
|
|
8
|
+
/// <summary>
|
|
9
|
+
/// probuilder.bridge-edges — 在两条边之间创建桥接面。
|
|
10
|
+
/// </summary>
|
|
11
|
+
public class BridgeEdgesTool : IUnityCliTool<BridgeEdgesTool.Request, BridgeEdgesTool.Result>
|
|
12
|
+
{
|
|
13
|
+
public sealed class Request
|
|
14
|
+
{
|
|
15
|
+
[UnityCliRequired] public string Target { get; set; }
|
|
16
|
+
[UnityCliRequired] public EdgeRef EdgeA { get; set; }
|
|
17
|
+
[UnityCliRequired] public EdgeRef EdgeB { get; set; }
|
|
18
|
+
public bool AllowNonManifold { get; set; }
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
public sealed class EdgeRef
|
|
22
|
+
{
|
|
23
|
+
public long A { get; set; }
|
|
24
|
+
public long B { get; set; }
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
public sealed class Result
|
|
28
|
+
{
|
|
29
|
+
public long NewFaceCount { get; set; }
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
public ToolDescriptor Describe() => new()
|
|
33
|
+
{
|
|
34
|
+
Name = "probuilder.bridge-edges",
|
|
35
|
+
Summary = "Bridge two edges on a ProBuilder mesh to create a connecting face.",
|
|
36
|
+
Description = "Create exactly one non-degenerate quad between two existing edges. The edges must resolve to four distinct shared endpoints, may not already bound the same face, and must not require the ProBuilder triangle-bridge branch. UV1 must be absent, and every existing triangle must have UV0 inputs whose full 5.2.4 tangent reciprocal, direction, and raw accumulation arithmetic stays finite. By default each edge must be a boundary edge; allowNonManifold permits one or both edges to have two readable incidences, but all other exact-plan restrictions still apply. The created quad receives a deterministic manual UV0 layout before tangent refresh.",
|
|
37
|
+
Group = "probuilder",
|
|
38
|
+
DestructiveHint = false,
|
|
39
|
+
SideEffects = new[] { "scene-modify", "undo-stack" },
|
|
40
|
+
Target = "editor",
|
|
41
|
+
PlayModeSupport = "editor-only",
|
|
42
|
+
DefaultTimeoutMs = 10000,
|
|
43
|
+
MaxTimeoutMs = 30000,
|
|
44
|
+
Examples = new[]
|
|
45
|
+
{
|
|
46
|
+
new ToolExample { Description = "在闭合网格上桥接两条边", Input = new Request { Target = "MyCube", EdgeA = new EdgeRef { A = 0, B = 1 }, EdgeB = new EdgeRef { A = 5, B = 7 }, AllowNonManifold = true } }
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
public System.Threading.Tasks.ValueTask<Result> ExecuteAsync(Request request, UnityCliProjectToolContext ctx, System.Threading.CancellationToken ct = default)
|
|
51
|
+
{
|
|
52
|
+
if (!ProBuilderReflection.IsAvailable)
|
|
53
|
+
throw ProBuilderErrors.PackageNotAvailable();
|
|
54
|
+
|
|
55
|
+
var target = request.Target;
|
|
56
|
+
var allowNonManifold = request.AllowNonManifold;
|
|
57
|
+
var go = ProBuilderInput.ResolveTarget(target);
|
|
58
|
+
if (go == null) throw ProBuilderErrors.TargetNotFound(request.Target);
|
|
59
|
+
|
|
60
|
+
var mesh = ProBuilderReflection.GetProBuilderMesh(go);
|
|
61
|
+
if (mesh == null) throw ProBuilderErrors.OperationFailed("bridge-edges", "No ProBuilderMesh on target.");
|
|
62
|
+
|
|
63
|
+
if (request.EdgeA == null || request.EdgeB == null)
|
|
64
|
+
throw ProBuilderErrors.SchemaInvalid("edgeA and edgeB parameters are required (as {a, b} vertex index pairs).");
|
|
65
|
+
var edgeA = new ProBuilderInput.EdgePair { a = ProBuilderOperationProof.CheckedInt(request.EdgeA.A, "edgeA.a"), b = ProBuilderOperationProof.CheckedInt(request.EdgeA.B, "edgeA.b") };
|
|
66
|
+
var edgeB = new ProBuilderInput.EdgePair { a = ProBuilderOperationProof.CheckedInt(request.EdgeB.A, "edgeB.a"), b = ProBuilderOperationProof.CheckedInt(request.EdgeB.B, "edgeB.b") };
|
|
67
|
+
var edgeArray = ProBuilderOperationProof.ValidateEdges(mesh, null, new[] { edgeA, edgeB });
|
|
68
|
+
var source = ProBuilderEdgeCompletionProof.Capture(go, mesh, edgeArray);
|
|
69
|
+
if (!ProBuilderEdgeCompletionProof.TryPlanBridge(source, allowNonManifold))
|
|
70
|
+
throw ProBuilderErrors.SchemaInvalid("bridge requires two distinct real edges with four shared endpoints and a complete provable quad plan.");
|
|
71
|
+
var frozenEdgeA = edgeArray.GetValue(0); var frozenEdgeB = edgeArray.GetValue(1);
|
|
72
|
+
ctx.CommitEffect();
|
|
73
|
+
try
|
|
74
|
+
{
|
|
75
|
+
bool invoked, bridged;
|
|
76
|
+
try
|
|
77
|
+
{
|
|
78
|
+
Undo.RecordObject(go, "ProBuilder Bridge Edges");
|
|
79
|
+
invoked = ProBuilderReflection.TryBridgeFrozenEdges(mesh, frozenEdgeA, frozenEdgeB, allowNonManifold, out bridged);
|
|
80
|
+
}
|
|
81
|
+
catch (UnityCliBridge.BridgeCommandException) { throw; }
|
|
82
|
+
catch { throw ProBuilderErrors.OutcomeUnknown("bridge-edges", "invoke", "AppendElements.Bridge threw after the effect barrier."); }
|
|
83
|
+
if (!invoked || !bridged)
|
|
84
|
+
throw ProBuilderErrors.OutcomeUnknown("bridge-edges", "invoke", "AppendElements.Bridge did not create the planned face.");
|
|
85
|
+
if (!ProBuilderOperationProof.ApplyDeterministicQuadUvs(mesh, source[0].Before.Faces.Length, 1))
|
|
86
|
+
throw ProBuilderErrors.OutcomeUnknown("bridge-edges", "invoke", "The created bridge quad could not receive its deterministic manual UV0 layout.");
|
|
87
|
+
|
|
88
|
+
try
|
|
89
|
+
{
|
|
90
|
+
if (!ProBuilderReflection.RefreshMeshPreservingVertexPayload(mesh)) throw new System.InvalidOperationException();
|
|
91
|
+
EditorSceneManager.MarkSceneDirty(go.scene);
|
|
92
|
+
}
|
|
93
|
+
catch (UnityCliBridge.BridgeCommandException) { throw; }
|
|
94
|
+
catch { throw ProBuilderErrors.OutcomeUnknown("bridge-edges", "readback", "ProBuilder mesh refresh failed after effect."); }
|
|
95
|
+
var freshMesh = ProBuilderEdgeCompletionProof.ResolveFresh(source[0], target);
|
|
96
|
+
if (freshMesh == null)
|
|
97
|
+
throw ProBuilderErrors.OutcomeUnknown("bridge-edges", "readback", "Fresh target identity could not be resolved.");
|
|
98
|
+
try
|
|
99
|
+
{
|
|
100
|
+
if (!ProBuilderEdgeCompletionProof.BridgeMatches(source, go, freshMesh, allowNonManifold, out var mismatch))
|
|
101
|
+
throw ProBuilderErrors.OutcomeUnknown("bridge-edges", "postcondition", "Requested bridge face was not proven by fresh topology readback: " + mismatch + ".");
|
|
102
|
+
}
|
|
103
|
+
catch (UnityCliBridge.BridgeCommandException) { throw; }
|
|
104
|
+
catch (System.Exception exception) { throw ProBuilderErrors.OutcomeUnknown("bridge-edges", "postcondition", exception.Message); }
|
|
105
|
+
|
|
106
|
+
return new System.Threading.Tasks.ValueTask<Result>(new Result { NewFaceCount = 1 });
|
|
107
|
+
}
|
|
108
|
+
catch (UnityCliBridge.BridgeCommandException) { throw; }
|
|
109
|
+
catch (System.Exception exception) { throw ProBuilderErrors.OutcomeUnknown("bridge-edges", "postcondition", exception.Message); }
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
#endif
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
#if UNITY_EDITOR
|
|
2
|
+
using System;
|
|
3
|
+
using UnityEditor;
|
|
4
|
+
using UnityEditor.SceneManagement;
|
|
5
|
+
using UnityEngine;
|
|
6
|
+
using UnityEngine.ProBuilder;
|
|
7
|
+
using UnityEngine.ProBuilder.MeshOperations;
|
|
8
|
+
namespace UnityCli.ProBuilder
|
|
9
|
+
{
|
|
10
|
+
/// <summary>probuilder.center-pivot — 将轴心点居中到包围盒中心。</summary>
|
|
11
|
+
public class CenterPivotTool : IUnityCliTool<CenterPivotTool.Request, CenterPivotTool.Result>
|
|
12
|
+
{
|
|
13
|
+
public sealed class Request { [UnityCliRequired] public string Target { get; set; } }
|
|
14
|
+
public sealed class Result { public Vec3 PivotOffset { get; set; } public Vec3 NewPosition { get; set; } }
|
|
15
|
+
public sealed class Vec3 { public double X { get; set; } public double Y { get; set; } public double Z { get; set; } }
|
|
16
|
+
public ToolDescriptor Describe() => new() { Name = "probuilder.center-pivot", Summary = "Center a ProBuilder mesh pivot to its renderer bounds center.", Description = "Center a mesh pivot to its renderer bounds center while preserving readable world geometry.", Group = "probuilder", DestructiveHint = false, SideEffects = new[] { "scene-modify", "undo-stack" }, Target = "editor", PlayModeSupport = "editor-only", DefaultTimeoutMs = 10000, MaxTimeoutMs = 30000, Examples = new[] { new ToolExample { Description = "居中轴心", Input = new Request { Target = "MyCube" } } } };
|
|
17
|
+
public System.Threading.Tasks.ValueTask<Result> ExecuteAsync(Request request, UnityCliProjectToolContext ctx, System.Threading.CancellationToken ct = default)
|
|
18
|
+
{
|
|
19
|
+
if (!ProBuilderReflection.IsAvailable) throw ProBuilderErrors.PackageNotAvailable(); var target = request.Target; var go = ProBuilderInput.ResolveTarget(target); if (go == null) throw ProBuilderErrors.TargetNotFound(target); var mesh = ProBuilderReflection.GetProBuilderMesh(go) as ProBuilderMesh; if (mesh == null) throw ProBuilderErrors.OperationFailed("center-pivot", "No ProBuilderMesh on target.");
|
|
20
|
+
var renderer = go.GetComponent<Renderer>(); if (renderer == null) throw ProBuilderErrors.OperationFailed("center-pivot", "Target has no Renderer to determine bounds center."); var pivot = renderer.bounds.center; if (float.IsNaN(pivot.x) || float.IsInfinity(pivot.x) || float.IsNaN(pivot.y) || float.IsInfinity(pivot.y) || float.IsNaN(pivot.z) || float.IsInfinity(pivot.z)) throw ProBuilderErrors.SchemaInvalid("Target bounds center must be finite."); var old = go.transform.position;
|
|
21
|
+
if (go.transform.position == pivot) return new System.Threading.Tasks.ValueTask<Result>(new Result { PivotOffset = new Vec3(), NewPosition = new Vec3 { X = pivot.x, Y = pivot.y, Z = pivot.z } }); var worldPositions = ProBuilderAtomicReadback.CaptureWorldPositions(go, mesh); if (worldPositions == null) throw ProBuilderErrors.OperationFailed("center-pivot", "Raw vertex positions are unreadable.");
|
|
22
|
+
var instanceId = go.GetInstanceID();
|
|
23
|
+
ctx.CommitEffect();
|
|
24
|
+
try
|
|
25
|
+
{
|
|
26
|
+
ProBuilderAtomicReadback.RegisterMeshUndo(go, mesh, "ProBuilder Center Pivot", true);
|
|
27
|
+
mesh.CenterPivot(null);
|
|
28
|
+
EditorSceneManager.MarkSceneDirty(go.scene);
|
|
29
|
+
var freshGo = EditorUtility.InstanceIDToObject(instanceId) as GameObject;
|
|
30
|
+
var fresh = ProBuilderReflection.GetProBuilderMesh(freshGo);
|
|
31
|
+
if (fresh == null) throw ProBuilderErrors.OutcomeUnknown("center-pivot", "readback", "Fresh target mesh is unreadable.");
|
|
32
|
+
if (!ProBuilderAtomicReadback.PivotPreservesWorldGeometry(freshGo, fresh, pivot, worldPositions, true)) throw ProBuilderErrors.OutcomeUnknown("center-pivot", "postcondition", "Center pivot or world geometry did not match the request.");
|
|
33
|
+
var offset = pivot - old;
|
|
34
|
+
return new System.Threading.Tasks.ValueTask<Result>(new Result { PivotOffset = new Vec3 { X = offset.x, Y = offset.y, Z = offset.z }, NewPosition = new Vec3 { X = pivot.x, Y = pivot.y, Z = pivot.z } });
|
|
35
|
+
}
|
|
36
|
+
catch (Exception exception) when (!(exception is UnityCliBridge.BridgeCommandException))
|
|
37
|
+
{
|
|
38
|
+
throw ProBuilderErrors.OutcomeUnknown("center-pivot", "invoke", exception.Message);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
#endif
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
#if UNITY_EDITOR
|
|
2
|
+
using System;
|
|
3
|
+
using System.Collections.Generic;
|
|
4
|
+
using System.Linq;
|
|
5
|
+
using UnityEditor;
|
|
6
|
+
using UnityEditor.SceneManagement;
|
|
7
|
+
using UnityEngine;
|
|
8
|
+
using UnityEngine.ProBuilder;
|
|
9
|
+
namespace UnityCli.ProBuilder
|
|
10
|
+
{
|
|
11
|
+
public class CombineMeshesTool : IUnityCliTool<CombineMeshesTool.Request, CombineMeshesTool.Result>
|
|
12
|
+
{
|
|
13
|
+
public sealed class Request { [UnityCliRequired] public List<string> Targets { get; set; } public string Name { get; set; } }
|
|
14
|
+
public sealed class Result { public ObjectRef CombinedObject { get; set; } public long SourceCount { get; set; } }
|
|
15
|
+
public sealed class ObjectRef { public long Id { get; set; } public string Name { get; set; } public string Path { get; set; } }
|
|
16
|
+
public ToolDescriptor Describe() => new()
|
|
17
|
+
{
|
|
18
|
+
Name = "probuilder.combine-meshes",
|
|
19
|
+
Summary = "Combine ProBuilder meshes into the first target.",
|
|
20
|
+
Description = "Combine at least two unique ProBuilder mesh targets into the first target.",
|
|
21
|
+
Group = "probuilder",
|
|
22
|
+
DestructiveHint = false,
|
|
23
|
+
SideEffects = new[] { "scene-modify", "undo-stack" },
|
|
24
|
+
Target = "editor",
|
|
25
|
+
PlayModeSupport = "editor-only",
|
|
26
|
+
DefaultTimeoutMs = 15000,
|
|
27
|
+
MaxTimeoutMs = 60000,
|
|
28
|
+
Examples = new[]
|
|
29
|
+
{
|
|
30
|
+
new ToolExample { Description = "合并两个 strict-domain 三角形", Input = new Request { Name = "CombinedTriangles", Targets = new List<string> { "TriangleA", "TriangleB" } } }
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
public System.Threading.Tasks.ValueTask<Result> ExecuteAsync(Request request, UnityCliProjectToolContext ctx, System.Threading.CancellationToken ct = default)
|
|
34
|
+
{
|
|
35
|
+
if (!ProBuilderReflection.IsAvailable) throw ProBuilderErrors.PackageNotAvailable(); var targets = ProBuilderInput.ResolveTargets(request.Targets); var name = request.Name ?? "ProBuilder_Combined";
|
|
36
|
+
if (targets == null || request.Targets == null || targets.Length != request.Targets.Count || targets.Length < 2 || string.IsNullOrWhiteSpace(name) || targets.Select(value => value.GetInstanceID()).Distinct().Count() != targets.Length) throw ProBuilderErrors.SchemaInvalid("combine-meshes requires at least 2 unique targets and a non-empty name.");
|
|
37
|
+
var meshes = targets.Select(ProBuilderReflection.GetProBuilderMesh).ToArray();
|
|
38
|
+
if (meshes.Any(value => value == null) || meshes.Any(value => ProBuilderReflection.GetFaceCount(value) < 1)) throw ProBuilderErrors.SchemaInvalid("Every target must have readable ProBuilder geometry.");
|
|
39
|
+
var totalVertices = meshes.Sum(ProBuilderReflection.GetVertexCount);
|
|
40
|
+
if (totalVertices < 1 || totalVertices >= ProBuilderMesh.maxVertexCount) throw ProBuilderErrors.SchemaInvalid("Combined raw vertex count must remain below ProBuilderMesh.maxVertexCount.");
|
|
41
|
+
var ids = targets.Select(value => value.GetInstanceID()).ToArray();
|
|
42
|
+
var minimumFaces = meshes.Sum(ProBuilderReflection.GetFaceCount);
|
|
43
|
+
ctx.CommitEffect();
|
|
44
|
+
try
|
|
45
|
+
{
|
|
46
|
+
foreach (var index in Enumerable.Range(0, targets.Length))
|
|
47
|
+
ProBuilderAtomicReadback.RegisterMeshUndo(targets[index], meshes[index], "ProBuilder Combine Meshes", false, targets[index].GetComponent<Renderer>());
|
|
48
|
+
if (!ProBuilderReflection.CombineMeshesViaReflection(meshes, meshes[0])) throw ProBuilderErrors.OutcomeUnknown("combine-meshes", "invoke", "CombineMeshes.Combine failed.");
|
|
49
|
+
foreach (var source in targets.Skip(1)) Undo.DestroyObjectImmediate(source);
|
|
50
|
+
}
|
|
51
|
+
catch (UnityCliBridge.BridgeCommandException) { throw; } catch (Exception ex) { throw ProBuilderErrors.OutcomeUnknown("combine-meshes", "invoke", ex.Message); }
|
|
52
|
+
try { if (!ProBuilderReflection.RefreshMesh(meshes[0])) throw ProBuilderErrors.OutcomeUnknown("combine-meshes", "readback", "ProBuilder refresh failed."); var fresh = EditorUtility.InstanceIDToObject(ids[0]) as GameObject; if (fresh == null) throw ProBuilderErrors.OutcomeUnknown("combine-meshes", "readback", "Combined target identity could not be resolved."); fresh.name = name; EditorSceneManager.MarkSceneDirty(fresh.scene); var freshMesh = ProBuilderReflection.GetProBuilderMesh(fresh); if (fresh.name != name || !ProBuilderAtomicReadback.SourcesWereRemovedAndGeometryIncluded(fresh, freshMesh, ids, minimumFaces)) throw ProBuilderErrors.OutcomeUnknown("combine-meshes", "postcondition", "Combined geometry or source removal could not be confirmed."); return new System.Threading.Tasks.ValueTask<Result>(new Result { CombinedObject = new ObjectRef { Id = fresh.GetInstanceID(), Name = fresh.name, Path = HierarchyPath(fresh) }, SourceCount = targets.Length }); }
|
|
53
|
+
catch (UnityCliBridge.BridgeCommandException) { throw; } catch (Exception ex) { throw ProBuilderErrors.OutcomeUnknown("combine-meshes", "readback", ex.Message); }
|
|
54
|
+
}
|
|
55
|
+
private static string HierarchyPath(GameObject go) { var names = new Stack<string>(); for (var current = go.transform; current != null; current = current.parent) names.Push(current.name); return string.Join("/", names.ToArray()); }
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
#endif
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
#if UNITY_EDITOR
|
|
2
|
+
using System.Collections.Generic;
|
|
3
|
+
using System.Linq;
|
|
4
|
+
using UnityEditor;
|
|
5
|
+
using UnityEditor.SceneManagement;
|
|
6
|
+
using UnityEngine;
|
|
7
|
+
|
|
8
|
+
namespace UnityCli.ProBuilder
|
|
9
|
+
{
|
|
10
|
+
/// <summary>
|
|
11
|
+
/// probuilder.connect-elements — 在选定边或面之间插入连接边。
|
|
12
|
+
/// </summary>
|
|
13
|
+
public class ConnectElementsTool : IUnityCliTool<ConnectElementsTool.Request, ConnectElementsTool.Result>
|
|
14
|
+
{
|
|
15
|
+
public sealed class Request
|
|
16
|
+
{
|
|
17
|
+
[UnityCliRequired] public string Target { get; set; }
|
|
18
|
+
public List<long> EdgeIndices { get; set; } // 可选
|
|
19
|
+
public List<EdgeRef> Edges { get; set; } // 可选
|
|
20
|
+
public List<long> FaceIndices { get; set; } // 可选
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
public sealed class EdgeRef
|
|
24
|
+
{
|
|
25
|
+
public long A { get; set; }
|
|
26
|
+
public long B { get; set; }
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
public sealed class Result
|
|
30
|
+
{
|
|
31
|
+
public long ConnectedCount { get; set; }
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
public ToolDescriptor Describe() => new()
|
|
35
|
+
{
|
|
36
|
+
Name = "probuilder.connect-elements",
|
|
37
|
+
Summary = "Insert a connecting edge loop across selected edges or faces of a ProBuilder mesh.",
|
|
38
|
+
Description = "Connect the sole triangular face of a ProBuilder mesh, or exactly two distinct boundary edges of that face. The mesh must use serialized format 2, bind its serialized compiled Mesh to MeshFilter.sharedMesh, and have exactly three raw and shared vertices with unique positions, an empty shared-texture map, one non-null Renderer material on source submesh 0, and source Vertex channels whose 5.2.4 midpoint/centroid arithmetic stays finite. UV0 must be complete for all raw vertices or absent for the whole mesh; partial UV0 profiles are rejected. Other selections are rejected before the scene effect. Specify edgeIndices, vertex-pair edges [{a,b}], or one faceIndices value.",
|
|
39
|
+
Group = "probuilder",
|
|
40
|
+
DestructiveHint = false,
|
|
41
|
+
SideEffects = new[] { "scene-modify", "undo-stack" },
|
|
42
|
+
Target = "editor",
|
|
43
|
+
PlayModeSupport = "editor-only",
|
|
44
|
+
DefaultTimeoutMs = 10000,
|
|
45
|
+
MaxTimeoutMs = 30000,
|
|
46
|
+
Examples = new[]
|
|
47
|
+
{
|
|
48
|
+
new ToolExample { Description = "连接唯一三角面", Input = new Request { Target = "MyTriangle", FaceIndices = new List<long> { 0 } } }
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
public System.Threading.Tasks.ValueTask<Result> ExecuteAsync(Request request, UnityCliProjectToolContext ctx, System.Threading.CancellationToken ct = default)
|
|
53
|
+
{
|
|
54
|
+
if (!ProBuilderReflection.IsAvailable)
|
|
55
|
+
throw ProBuilderErrors.PackageNotAvailable();
|
|
56
|
+
|
|
57
|
+
var target = request.Target;
|
|
58
|
+
var go = ProBuilderInput.ResolveTarget(target);
|
|
59
|
+
if (go == null) throw ProBuilderErrors.TargetNotFound(request.Target);
|
|
60
|
+
|
|
61
|
+
var mesh = ProBuilderReflection.GetProBuilderMesh(go);
|
|
62
|
+
var typedMesh = mesh as UnityEngine.ProBuilder.ProBuilderMesh;
|
|
63
|
+
if (typedMesh == null) throw ProBuilderErrors.OperationFailed("connect-elements", "No ProBuilderMesh on target.");
|
|
64
|
+
// CanonicalMeshSnapshot 在 effect 前冻结 target 与 component identity。
|
|
65
|
+
|
|
66
|
+
int[] edgeIndices = request.EdgeIndices?.Select(i => ProBuilderOperationProof.CheckedInt(i, "edgeIndices")).ToArray();
|
|
67
|
+
ProBuilderInput.EdgePair[] edgePairs = request.Edges?.Select(e => new ProBuilderInput.EdgePair { a = ProBuilderOperationProof.CheckedInt(e.A, "edges.a"), b = ProBuilderOperationProof.CheckedInt(e.B, "edges.b") }).ToArray();
|
|
68
|
+
int[] faceIndices = request.FaceIndices?.Select(i => ProBuilderOperationProof.CheckedInt(i, "faceIndices")).ToArray();
|
|
69
|
+
|
|
70
|
+
if ((edgeIndices == null || edgeIndices.Length == 0) &&
|
|
71
|
+
(edgePairs == null || edgePairs.Length == 0) &&
|
|
72
|
+
(faceIndices == null || faceIndices.Length == 0))
|
|
73
|
+
throw ProBuilderErrors.SchemaInvalid("Either edgeIndices, edges, or faceIndices parameter is required for connect-elements.");
|
|
74
|
+
|
|
75
|
+
var faceMode = faceIndices != null && faceIndices.Length > 0;
|
|
76
|
+
if (faceMode && ((edgeIndices != null && edgeIndices.Length > 0) || (edgePairs != null && edgePairs.Length > 0)))
|
|
77
|
+
throw ProBuilderErrors.SchemaInvalid("Connect-elements accepts either edge selection or face selection, not both.");
|
|
78
|
+
if (faceMode) ProBuilderOperationProof.ValidateFaceIndices(typedMesh, faceIndices);
|
|
79
|
+
var resolved = faceMode ? null : ProBuilderOperationProof.ValidateEdges(typedMesh, edgeIndices, edgePairs);
|
|
80
|
+
var frozenEdges = resolved == null ? null : resolved.Cast<UnityEngine.ProBuilder.Edge>().ToArray();
|
|
81
|
+
var frozenFaces = faceMode ? faceIndices.Select(index => typedMesh.faces[index]).ToArray() : null;
|
|
82
|
+
var plan = ProBuilderConnectCompletionProof.Capture(go, faceMode, frozenEdges, frozenFaces);
|
|
83
|
+
if (plan == null)
|
|
84
|
+
throw ProBuilderErrors.OperationFailed("connect-elements", "Only a current-format sole triangular face with one bound compiled Mesh, three unique raw/shared vertices, one non-null source material, an empty shared-texture map, finite midpoint/centroid channel arithmetic, or exactly two of its boundary edges, has a unique ProBuilder 5.2.4 completion plan.");
|
|
85
|
+
|
|
86
|
+
ctx.CommitEffect();
|
|
87
|
+
try
|
|
88
|
+
{
|
|
89
|
+
Undo.RecordObject(go, "ProBuilder Connect Elements");
|
|
90
|
+
UnityEngine.ProBuilder.Face[] connectedFaces;
|
|
91
|
+
try
|
|
92
|
+
{
|
|
93
|
+
// effect API 只接收 effect 前冻结的 typed Edge[] 或 Face[],并保留真实返回面用于业务结果和终态归因。
|
|
94
|
+
if (plan.FaceMode)
|
|
95
|
+
connectedFaces = UnityEngine.ProBuilder.MeshOperations.ConnectElements.Connect(typedMesh, (UnityEngine.ProBuilder.Face[])plan.FrozenFaces);
|
|
96
|
+
else
|
|
97
|
+
connectedFaces = UnityEngine.ProBuilder.MeshOperations.ConnectElements.Connect(typedMesh, (UnityEngine.ProBuilder.Edge[])plan.FrozenEdges).item1;
|
|
98
|
+
}
|
|
99
|
+
catch (UnityCliBridge.BridgeCommandException) { throw; }
|
|
100
|
+
catch { throw ProBuilderErrors.OutcomeUnknown("connect-elements", "invoke", "ConnectElements.Connect threw after the effect barrier."); }
|
|
101
|
+
if (connectedFaces == null || connectedFaces.Length != plan.ExpectedFaceCount)
|
|
102
|
+
throw ProBuilderErrors.OutcomeUnknown("connect-elements", "invoke", "ConnectElements.Connect did not return the complete frozen face set.");
|
|
103
|
+
|
|
104
|
+
if (!ProBuilderReflection.RefreshMeshPreservingVertexPayload(typedMesh))
|
|
105
|
+
throw ProBuilderErrors.OutcomeUnknown("connect-elements", "readback", "ProBuilder mesh refresh failed after effect.");
|
|
106
|
+
EditorSceneManager.MarkSceneDirty(go.scene);
|
|
107
|
+
try
|
|
108
|
+
{
|
|
109
|
+
var freshMesh = CanonicalMeshSnapshot.ResolveFreshMesh(target, plan.Before.Identity);
|
|
110
|
+
if (freshMesh == null)
|
|
111
|
+
throw ProBuilderErrors.OutcomeUnknown("connect-elements", "readback", "Fresh target identity could not be resolved.");
|
|
112
|
+
var after = CanonicalMeshSnapshot.Capture(freshMesh.gameObject);
|
|
113
|
+
if (after == null)
|
|
114
|
+
throw ProBuilderErrors.OutcomeUnknown("connect-elements", "readback", "Fresh canonical topology could not be read.");
|
|
115
|
+
if (!ProBuilderConnectCompletionProof.Matches(plan, after))
|
|
116
|
+
throw ProBuilderErrors.OutcomeUnknown("connect-elements", "postcondition", "The complete frozen ConnectElements terminal plan was not proven by fresh readback.");
|
|
117
|
+
}
|
|
118
|
+
catch (UnityCliBridge.BridgeCommandException) { throw; }
|
|
119
|
+
catch { throw ProBuilderErrors.OutcomeUnknown("connect-elements", "postcondition", "Fresh terminal readback could not be proven."); }
|
|
120
|
+
|
|
121
|
+
return new System.Threading.Tasks.ValueTask<Result>(new Result { ConnectedCount = connectedFaces.Length });
|
|
122
|
+
}
|
|
123
|
+
catch (UnityCliBridge.BridgeCommandException) { throw; }
|
|
124
|
+
catch (System.Exception exception) { throw ProBuilderErrors.OutcomeUnknown("connect-elements", "postcondition", exception.Message); }
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
#endif
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
#if UNITY_EDITOR
|
|
2
|
+
using System;
|
|
3
|
+
using UnityEditor;
|
|
4
|
+
using UnityEditor.SceneManagement;
|
|
5
|
+
using UnityEngine;
|
|
6
|
+
namespace UnityCli.ProBuilder
|
|
7
|
+
{
|
|
8
|
+
public class ConvertToProBuilderTool : IUnityCliTool<ConvertToProBuilderTool.Request, ConvertToProBuilderTool.Result>
|
|
9
|
+
{
|
|
10
|
+
public sealed class Request { [UnityCliRequired] public string Target { get; set; } }
|
|
11
|
+
public sealed class Result { public bool Converted { get; set; } public long VertexCount { get; set; } public long FaceCount { get; set; } }
|
|
12
|
+
public ToolDescriptor Describe() => new()
|
|
13
|
+
{
|
|
14
|
+
Name = "probuilder.convert-to-probuilder",
|
|
15
|
+
Summary = "Convert a Unity mesh into a ProBuilder mesh.",
|
|
16
|
+
Description = "Convert a MeshFilter with readable vertices and triangle indices into a ProBuilder mesh.",
|
|
17
|
+
Group = "probuilder",
|
|
18
|
+
DestructiveHint = false,
|
|
19
|
+
SideEffects = new[] { "scene-modify", "undo-stack" },
|
|
20
|
+
Target = "editor",
|
|
21
|
+
PlayModeSupport = "editor-only",
|
|
22
|
+
DefaultTimeoutMs = 10000,
|
|
23
|
+
MaxTimeoutMs = 30000,
|
|
24
|
+
Examples = new[]
|
|
25
|
+
{
|
|
26
|
+
new ToolExample { Description = "转换普通网格", Input = new Request { Target = "MyPrimitive" } }
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
public System.Threading.Tasks.ValueTask<Result> ExecuteAsync(Request request, UnityCliProjectToolContext ctx, System.Threading.CancellationToken ct = default)
|
|
30
|
+
{
|
|
31
|
+
if (!ProBuilderReflection.IsAvailable) throw ProBuilderErrors.PackageNotAvailable(); var go = ProBuilderInput.ResolveTarget(request.Target); if (go == null) throw ProBuilderErrors.TargetNotFound(request.Target); if (ProBuilderReflection.GetProBuilderMesh(go) != null) throw ProBuilderErrors.OperationFailed("convert-to-probuilder", "Target already has a ProBuilderMesh component.");
|
|
32
|
+
var source = ProBuilderAtomicReadback.CaptureSourceMeshGeometry(go.GetComponent<MeshFilter>()); if (source == null) throw ProBuilderErrors.SchemaInvalid("Target requires a MeshFilter with readable vertices and triangle indices."); var id = go.GetInstanceID(); ctx.CommitEffect(); object converted;
|
|
33
|
+
try { ProBuilderAtomicReadback.RegisterMeshUndo(go, null, "ProBuilder Convert to ProBuilder", false, go.GetComponent<MeshFilter>(), go.GetComponent<Renderer>()); converted = ProBuilderReflection.ConvertToProBuilderMesh(go); if (converted == null) throw ProBuilderErrors.OutcomeUnknown("convert-to-probuilder", "invoke", "MeshImporter failed."); }
|
|
34
|
+
catch (UnityCliBridge.BridgeCommandException) { throw; } catch (Exception ex) { throw ProBuilderErrors.OutcomeUnknown("convert-to-probuilder", "invoke", ex.Message); }
|
|
35
|
+
try { if (!ProBuilderReflection.RefreshMesh(converted)) throw ProBuilderErrors.OutcomeUnknown("convert-to-probuilder", "readback", "ProBuilder refresh failed."); EditorSceneManager.MarkSceneDirty(go.scene); var freshGo = EditorUtility.InstanceIDToObject(id) as GameObject; var fresh = ProBuilderReflection.GetProBuilderMesh(freshGo); var vertices = ProBuilderReflection.GetVertexCount(fresh); var faces = ProBuilderReflection.GetFaceCount(fresh); if (!ProBuilderAtomicReadback.ConvertedGeometryMatchesSource(fresh, source) || vertices < 1 || faces < 1) throw ProBuilderErrors.OutcomeUnknown("convert-to-probuilder", "postcondition", "Converted geometry could not be confirmed."); return new System.Threading.Tasks.ValueTask<Result>(new Result { Converted = true, VertexCount = vertices, FaceCount = faces }); }
|
|
36
|
+
catch (UnityCliBridge.BridgeCommandException) { throw; } catch (Exception ex) { throw ProBuilderErrors.OutcomeUnknown("convert-to-probuilder", "readback", ex.Message); }
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
#endif
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
#if UNITY_EDITOR
|
|
2
|
+
using System;
|
|
3
|
+
using System.Collections.Generic;
|
|
4
|
+
using System.Linq;
|
|
5
|
+
using UnityEditor;
|
|
6
|
+
using UnityEditor.SceneManagement;
|
|
7
|
+
using UnityEngine;
|
|
8
|
+
using UnityEngine.ProBuilder;
|
|
9
|
+
using UnityEngine.ProBuilder.MeshOperations;
|
|
10
|
+
namespace UnityCli.ProBuilder
|
|
11
|
+
{
|
|
12
|
+
public class CreatePolyShapeTool : IUnityCliTool<CreatePolyShapeTool.Request, CreatePolyShapeTool.Result>
|
|
13
|
+
{
|
|
14
|
+
public sealed class Request { [UnityCliRequired] public List<Point3D> Points { get; set; } public double? ExtrudeHeight { get; set; } public bool FlipNormals { get; set; } public string Name { get; set; } }
|
|
15
|
+
public sealed class Point3D { public double X { get; set; } public double Y { get; set; } public double Z { get; set; } }
|
|
16
|
+
public sealed class Result { public ObjectRef Object { get; set; } }
|
|
17
|
+
public sealed class ObjectRef { public long Id { get; set; } public string Name { get; set; } public string Path { get; set; } public long FaceCount { get; set; } public long VertexCount { get; set; } }
|
|
18
|
+
public ToolDescriptor Describe() => new()
|
|
19
|
+
{
|
|
20
|
+
Name = "probuilder.create-poly-shape",
|
|
21
|
+
Summary = "Create a ProBuilder mesh from an extruded polygon.",
|
|
22
|
+
Description = "Create a ProBuilder mesh from at least three polygon points, with optional extrusion and normal direction.",
|
|
23
|
+
Group = "probuilder",
|
|
24
|
+
DestructiveHint = false,
|
|
25
|
+
SideEffects = new[] { "scene-modify", "undo-stack" },
|
|
26
|
+
Target = "editor",
|
|
27
|
+
PlayModeSupport = "editor-only",
|
|
28
|
+
DefaultTimeoutMs = 15000,
|
|
29
|
+
MaxTimeoutMs = 30000,
|
|
30
|
+
Examples = new[]
|
|
31
|
+
{
|
|
32
|
+
new ToolExample { Description = "创建水平三角形", Input = new Request { FlipNormals = false, Name = "ProBuilder_Triangle", Points = new List<Point3D> { new Point3D { X = 0, Y = 0, Z = 0 }, new Point3D { X = 1, Y = 0, Z = 0 }, new Point3D { X = 0, Y = 0, Z = 1 } } } }
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
public System.Threading.Tasks.ValueTask<Result> ExecuteAsync(Request request, UnityCliProjectToolContext ctx, System.Threading.CancellationToken ct = default)
|
|
36
|
+
{
|
|
37
|
+
if (!ProBuilderReflection.IsAvailable) throw ProBuilderErrors.PackageNotAvailable();
|
|
38
|
+
var name = request.Name ?? "ProBuilder_PolyShape";
|
|
39
|
+
var height = ProBuilderOperationProof.CheckedFloat(request.ExtrudeHeight ?? 1d, "extrudeHeight");
|
|
40
|
+
var flipNormals = request.FlipNormals;
|
|
41
|
+
if (string.IsNullOrWhiteSpace(name) || request.Points == null || request.Points.Any(point => point == null)) throw ProBuilderErrors.SchemaInvalid("name must be non-empty and points must be objects.");
|
|
42
|
+
var points = request.Points.Select(point => ProBuilderOperationProof.CheckedVector3(point.X, point.Y, point.Z, "points")).ToList();
|
|
43
|
+
if (points.Count < 3) throw ProBuilderErrors.SchemaInvalid("At least 3 points are required for create-poly-shape.");
|
|
44
|
+
ctx.CommitEffect();
|
|
45
|
+
GameObject go = null;
|
|
46
|
+
var id = 0;
|
|
47
|
+
try { go = new GameObject(name); id = go.GetInstanceID(); Undo.RegisterCreatedObjectUndo(go, "ProBuilder Create Poly Shape"); var mesh = go.AddComponent<ProBuilderMesh>(); var action = AppendElements.CreateShapeFromPolygon(mesh, points, height, flipNormals); if (mesh == null || action == null || action.status != ActionResult.Status.Success) throw ProBuilderErrors.OutcomeUnknown("create-poly-shape", "invoke", "CreateShapeFromPolygon failed."); }
|
|
48
|
+
catch (UnityCliBridge.BridgeCommandException) { throw; } catch (Exception ex) { throw ProBuilderErrors.OutcomeUnknown("create-poly-shape", "invoke", ex.Message); }
|
|
49
|
+
try { var mesh = ProBuilderReflection.GetProBuilderMesh(go); if (!ProBuilderReflection.RefreshMesh(mesh)) throw ProBuilderErrors.OutcomeUnknown("create-poly-shape", "readback", "ProBuilder refresh failed."); EditorSceneManager.MarkSceneDirty(go.scene); var fresh = EditorUtility.InstanceIDToObject(id) as GameObject; var freshMesh = ProBuilderReflection.GetProBuilderMesh(fresh); if (fresh == null || fresh.name != name || !ProBuilderAtomicReadback.PolyShapeMatchesRequest(fresh, freshMesh, points, height, flipNormals)) throw ProBuilderErrors.OutcomeUnknown("create-poly-shape", "postcondition", "Created polygon could not be confirmed."); return new System.Threading.Tasks.ValueTask<Result>(new Result { Object = new ObjectRef { Id = fresh.GetInstanceID(), Name = fresh.name, Path = HierarchyPath(fresh), FaceCount = ProBuilderReflection.GetFaceCount(freshMesh), VertexCount = ProBuilderReflection.GetVertexCount(freshMesh) } }); }
|
|
50
|
+
catch (UnityCliBridge.BridgeCommandException) { throw; } catch (Exception ex) { throw ProBuilderErrors.OutcomeUnknown("create-poly-shape", "readback", ex.Message); }
|
|
51
|
+
}
|
|
52
|
+
private static string HierarchyPath(GameObject go) { var names = new Stack<string>(); for (var current = go.transform; current != null; current = current.parent) names.Push(current.name); return string.Join("/", names.ToArray()); }
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
#endif
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
#if UNITY_EDITOR
|
|
2
|
+
using System;
|
|
3
|
+
using System.Collections.Generic;
|
|
4
|
+
using System.Linq;
|
|
5
|
+
using UnityEditor;
|
|
6
|
+
using UnityEditor.SceneManagement;
|
|
7
|
+
using UnityEngine;
|
|
8
|
+
namespace UnityCli.ProBuilder
|
|
9
|
+
{
|
|
10
|
+
public class CreatePolygonTool : IUnityCliTool<CreatePolygonTool.Request, CreatePolygonTool.Result>
|
|
11
|
+
{
|
|
12
|
+
public sealed class Request { [UnityCliRequired] public string Target { get; set; } [UnityCliRequired] public List<long> VertexIndices { get; set; } public bool? Unordered { get; set; } }
|
|
13
|
+
public sealed class Result { public long NewFaceIndex { get; set; } }
|
|
14
|
+
public ToolDescriptor Describe() => new() { Name = "probuilder.create-polygon", Summary = "Create a polygon face from selected vertices.", Description = "Create a polygon from at least three valid vertex indices. unordered defaults to true.", Group = "probuilder", DestructiveHint = false, SideEffects = new[] { "scene-modify", "undo-stack" }, Target = "editor", PlayModeSupport = "editor-only", DefaultTimeoutMs = 10000, MaxTimeoutMs = 30000, Examples = new[] { new ToolExample { Description = "创建多边形", Input = new Request { Target = "MyCube", VertexIndices = new List<long> { 0, 1, 2 } } } } };
|
|
15
|
+
public System.Threading.Tasks.ValueTask<Result> ExecuteAsync(Request request, UnityCliProjectToolContext ctx, System.Threading.CancellationToken ct = default)
|
|
16
|
+
{
|
|
17
|
+
if (!ProBuilderReflection.IsAvailable) throw ProBuilderErrors.PackageNotAvailable(); var go = ProBuilderInput.ResolveTarget(request.Target); if (go == null) throw ProBuilderErrors.TargetNotFound(request.Target); var mesh = ProBuilderReflection.GetProBuilderMesh(go); if (mesh == null) throw ProBuilderErrors.OperationFailed("create-polygon", "No ProBuilderMesh on target.");
|
|
18
|
+
var indices = request.VertexIndices?.Select(value => ProBuilderOperationProof.CheckedInt(value, "vertexIndices")).ToArray(); var vertexCount = ProBuilderReflection.GetVertexCount(mesh); var beforeCount = ProBuilderReflection.GetFaceCount(mesh);
|
|
19
|
+
if (indices == null || indices.Length < 3 || indices.Distinct().Count() != indices.Length || vertexCount < 0 || beforeCount < 0 || indices.Any(value => value < 0 || value >= vertexCount)) throw ProBuilderErrors.SchemaInvalid("vertexIndices must contain at least 3 unique valid vertices.");
|
|
20
|
+
var unordered = request.Unordered ?? true; var id = go.GetInstanceID(); ctx.CommitEffect();
|
|
21
|
+
try { ProBuilderAtomicReadback.RegisterMeshUndo(go, mesh, "ProBuilder Create Polygon"); if (!ProBuilderReflection.CreatePolygon(mesh, indices, unordered)) throw ProBuilderErrors.OutcomeUnknown("create-polygon", "invoke", "AppendElements.CreatePolygon failed."); }
|
|
22
|
+
catch (UnityCliBridge.BridgeCommandException) { throw; } catch (Exception ex) { throw ProBuilderErrors.OutcomeUnknown("create-polygon", "invoke", ex.Message); }
|
|
23
|
+
try { if (!ProBuilderReflection.RefreshMeshPreservingVertexPayload(mesh)) throw ProBuilderErrors.OutcomeUnknown("create-polygon", "readback", "ProBuilder refresh failed."); EditorSceneManager.MarkSceneDirty(go.scene); var fresh = EditorUtility.InstanceIDToObject(id) as GameObject; var freshMesh = ProBuilderReflection.GetProBuilderMesh(fresh); if (!ProBuilderAtomicReadback.PolygonWasCreatedFromRequestedVertices(freshMesh, indices, beforeCount + 1)) throw ProBuilderErrors.OutcomeUnknown("create-polygon", "postcondition", "Created polygon could not be confirmed."); return new System.Threading.Tasks.ValueTask<Result>(new Result { NewFaceIndex = beforeCount }); }
|
|
24
|
+
catch (UnityCliBridge.BridgeCommandException) { throw; } catch (Exception ex) { throw ProBuilderErrors.OutcomeUnknown("create-polygon", "readback", ex.Message); }
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
#endif
|