@alpsckr/unitycli 0.4.4 → 0.5.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/contracts/command-contract.json +591 -591
- package/contracts/package-files.json +367 -367
- package/contracts/stable-session/direct-call-semantics.json +3 -3
- package/contracts/stable-session/request-digest-v1-golden.json +2 -2
- package/contracts/tool-completion-contract.json +322 -322
- package/dist/bridge/domains/animation.js +37 -37
- package/dist/bridge/domains/animation.js.map +1 -1
- package/dist/bridge/domains/asset.js +15 -16
- package/dist/bridge/domains/asset.js.map +1 -1
- package/dist/bridge/domains/build.js +13 -13
- package/dist/bridge/domains/build.js.map +1 -1
- package/dist/bridge/domains/camera.js +7 -7
- package/dist/bridge/domains/camera.js.map +1 -1
- package/dist/bridge/domains/catalog-editor.d.ts +2 -0
- package/dist/bridge/domains/{project-tool.js → catalog-editor.js} +10 -10
- package/dist/bridge/domains/catalog-editor.js.map +1 -0
- package/dist/bridge/domains/catalog-player.d.ts +2 -0
- package/dist/bridge/domains/{runtime-tool.js → catalog-player.js} +9 -9
- package/dist/bridge/domains/catalog-player.js.map +1 -0
- package/dist/bridge/domains/code.js +1 -1
- package/dist/bridge/domains/code.js.map +1 -1
- package/dist/bridge/domains/console.js +2 -2
- package/dist/bridge/domains/console.js.map +1 -1
- package/dist/bridge/domains/doctor.js +3 -3
- package/dist/bridge/domains/doctor.js.map +1 -1
- package/dist/bridge/domains/editor.js +14 -14
- package/dist/bridge/domains/editor.js.map +1 -1
- package/dist/bridge/domains/game-object.js +16 -16
- package/dist/bridge/domains/game-object.js.map +1 -1
- package/dist/bridge/domains/lighting.d.ts +2 -0
- package/dist/bridge/domains/lighting.js +127 -0
- package/dist/bridge/domains/lighting.js.map +1 -0
- package/dist/bridge/domains/material.js +5 -5
- package/dist/bridge/domains/material.js.map +1 -1
- package/dist/bridge/domains/navmesh.js +3 -3
- package/dist/bridge/domains/navmesh.js.map +1 -1
- package/dist/bridge/domains/occlusion.js +1 -9
- package/dist/bridge/domains/occlusion.js.map +1 -1
- package/dist/bridge/domains/physics.js +14 -14
- package/dist/bridge/domains/physics.js.map +1 -1
- package/dist/bridge/domains/prefab.js +12 -12
- package/dist/bridge/domains/prefab.js.map +1 -1
- package/dist/bridge/domains/profiler.js +25 -25
- package/dist/bridge/domains/profiler.js.map +1 -1
- package/dist/bridge/domains/rendering.d.ts +2 -0
- package/dist/bridge/domains/rendering.js +71 -0
- package/dist/bridge/domains/rendering.js.map +1 -0
- package/dist/bridge/domains/runtime-reflection.d.ts +2 -0
- package/dist/bridge/domains/{reflection.js → runtime-reflection.js} +7 -7
- package/dist/bridge/domains/runtime-reflection.js.map +1 -0
- package/dist/bridge/domains/scene.js +15 -15
- package/dist/bridge/domains/scene.js.map +1 -1
- package/dist/bridge/domains/screenshot.js +6 -6
- package/dist/bridge/domains/screenshot.js.map +1 -1
- package/dist/bridge/domains/scriptable-object.js +4 -4
- package/dist/bridge/domains/scriptable-object.js.map +1 -1
- package/dist/bridge/domains/serialized-object.d.ts +2 -0
- package/dist/bridge/domains/{object.js → serialized-object.js} +6 -6
- package/dist/bridge/domains/serialized-object.js.map +1 -0
- package/dist/bridge/domains/shader.js +7 -7
- package/dist/bridge/domains/shader.js.map +1 -1
- package/dist/bridge/domains/texture.js +7 -7
- package/dist/bridge/domains/texture.js.map +1 -1
- package/dist/bridge/domains/timeline.js +4 -4
- package/dist/bridge/domains/timeline.js.map +1 -1
- package/dist/bridge/domains/ui.js +18 -18
- package/dist/bridge/domains/ui.js.map +1 -1
- package/dist/bridge/domains/volume.d.ts +2 -0
- package/dist/bridge/domains/volume.js +26 -0
- package/dist/bridge/domains/volume.js.map +1 -0
- package/dist/bridge/index.js +3 -3
- package/dist/bridge/index.js.map +1 -1
- package/dist/bridge/registry.js +15 -13
- package/dist/bridge/registry.js.map +1 -1
- package/dist/bridge/session-supervisor.js +27 -9
- package/dist/bridge/session-supervisor.js.map +1 -1
- package/dist/bridge/start-diagnostics.d.ts +19 -0
- package/dist/bridge/start-diagnostics.js +96 -0
- package/dist/bridge/start-diagnostics.js.map +1 -0
- package/dist/bridge/types.d.ts +1 -1
- package/dist/catalog-protocol.js +3 -3
- package/dist/catalog-protocol.js.map +1 -1
- package/dist/cli-commands/package.js +10 -2
- package/dist/cli-commands/package.js.map +1 -1
- package/dist/doctor.js +23 -1
- package/dist/doctor.js.map +1 -1
- package/dist/extensions/.generated-bridge-domains/cinemachine.js +14 -14
- package/dist/extensions/.generated-bridge-domains/cinemachine.js.map +1 -1
- package/dist/extensions/.generated-bridge-domains/hdrp.js +7 -7
- package/dist/extensions/.generated-bridge-domains/hdrp.js.map +1 -1
- package/dist/extensions/.generated-bridge-domains/probuilder.d.ts +3 -3
- package/dist/extensions/.generated-bridge-domains/probuilder.js +40 -40
- package/dist/extensions/.generated-bridge-domains/probuilder.js.map +1 -1
- package/dist/extensions/.generated-bridge-domains/urp.js +12 -12
- package/dist/extensions/.generated-bridge-domains/urp.js.map +1 -1
- package/dist/extensions/.generated-bridge-domains/vfx.js +27 -27
- package/dist/extensions/.generated-bridge-domains/vfx.js.map +1 -1
- package/dist/extensions/installer.d.ts +35 -0
- package/dist/extensions/installer.js +123 -0
- package/dist/extensions/installer.js.map +1 -1
- package/dist/instances.d.ts +6 -0
- package/dist/instances.js +13 -0
- package/dist/instances.js.map +1 -1
- package/dist/package-manager.js +1 -1
- package/dist/project-tool-discovery.d.ts +1 -1
- package/dist/project-tool-discovery.js +5 -5
- package/dist/project-tool-discovery.js.map +1 -1
- package/dist/runtime-code.js +2 -2
- package/dist/runtime-code.js.map +1 -1
- package/dist/services/reflect-service.d.ts +3 -3
- package/dist/services/reflect-service.js +5 -5
- package/dist/services/reflect-service.js.map +1 -1
- package/dist/tools/.generated-completion-registry.js +689 -689
- package/dist/tools/.generated-completion-registry.js.map +1 -1
- package/dist/tools/.generated-registry.d.ts +12 -12
- package/dist/tools/.generated-registry.js +12 -12
- package/dist/tools/.generated-registry.js.map +1 -1
- package/dist/tools/.generated-schemas.js +13 -13
- package/dist/tools/.generated-schemas.js.map +1 -1
- package/dist/tools/catalog.d.ts +1 -1
- package/dist/tools/catalog.js +1 -1
- package/dist/tools/code/{exec.d.ts → execute.d.ts} +1 -1
- package/dist/tools/code/{exec.js → execute.js} +5 -5
- package/dist/tools/code/execute.js.map +1 -0
- package/dist/tools/dispatcher.js +12 -8
- package/dist/tools/dispatcher.js.map +1 -1
- package/dist/tools/editor/compile.d.ts +3 -2
- package/dist/tools/editor/compile.js +23 -13
- package/dist/tools/editor/compile.js.map +1 -1
- package/dist/tools/editor/play-mode-status.js +2 -2
- package/dist/tools/editor/play-mode-status.js.map +1 -1
- package/dist/tools/editor/refresh.js +2 -2
- package/dist/tools/editor/refresh.js.map +1 -1
- package/dist/tools/metadata/derived.d.ts +0 -7
- package/dist/tools/metadata/derived.js +7 -16
- package/dist/tools/metadata/derived.js.map +1 -1
- package/dist/tools/metadata/index.d.ts +1 -1
- package/dist/tools/metadata/index.js +1 -1
- package/dist/tools/metadata/index.js.map +1 -1
- package/dist/tools/metadata/status.js +1 -1
- package/dist/tools/metadata/status.js.map +1 -1
- package/dist/tools/{runtime → player-runtime}/console.js +4 -4
- package/dist/tools/player-runtime/console.js.map +1 -0
- package/dist/tools/{runtime → player-runtime}/input/key.js +4 -4
- package/dist/tools/player-runtime/input/key.js.map +1 -0
- package/dist/tools/{runtime → player-runtime}/input/pointer.js +4 -4
- package/dist/tools/player-runtime/input/pointer.js.map +1 -0
- package/dist/tools/{runtime → player-runtime}/log.js +5 -5
- package/dist/tools/player-runtime/log.js.map +1 -0
- package/dist/tools/{runtime → player-runtime}/state.js +4 -4
- package/dist/tools/player-runtime/state.js.map +1 -0
- package/dist/tools/{runtime → player-runtime}/target-framerate/set.js +4 -4
- package/dist/tools/player-runtime/target-framerate/set.js.map +1 -0
- package/dist/tools/{runtime → player-runtime}/time-scale/set.js +4 -4
- package/dist/tools/player-runtime/time-scale/set.js.map +1 -0
- package/dist/tools/{runtime → player-runtime}/ui/capture-element.js +4 -4
- package/dist/tools/player-runtime/ui/capture-element.js.map +1 -0
- package/dist/tools/tools/group-summaries.js +17 -14
- package/dist/tools/tools/group-summaries.js.map +1 -1
- package/dist/tools/{reflect/member.js → type-inspection/get-member.js} +6 -6
- package/dist/tools/type-inspection/get-member.js.map +1 -0
- package/dist/tools/{reflect/type.js → type-inspection/get-type.js} +6 -6
- package/dist/tools/type-inspection/get-type.js.map +1 -0
- package/dist/tools/{reflect → type-inspection}/search.js +5 -5
- package/dist/tools/type-inspection/search.js.map +1 -0
- package/docs/README.md +1 -2
- package/docs/architecture.md +1 -1
- package/docs/availability-differences.md +2 -2
- package/docs/development.md +1 -1
- package/docs/error-codes.md +5 -5
- package/docs/extensions.md +2 -2
- package/docs/risk-and-side-effects.md +12 -12
- package/docs/safety-boundaries.md +7 -7
- package/docs/tool-discovery.md +1 -1
- package/docs/tool-execution.md +16 -16
- package/extensions/cinemachine/bridge/domains/cinemachine.ts +14 -14
- package/extensions/hdrp/bridge/domains/hdrp.ts +7 -7
- package/extensions/hdrp/unitypkg/Editor/Hdrp/HdrpToolSupport.cs +2 -2
- package/extensions/probuilder/bridge/domains/probuilder.ts +40 -40
- package/extensions/probuilder/unitypkg/Editor/ProBuilder/ProBuilderErrors.cs +1 -1
- package/extensions/urp/bridge/domains/urp.ts +12 -12
- package/extensions/urp/unitypkg/Editor/Urp/UrpToolSupport.cs +2 -2
- package/extensions/vfx-graph/bridge/domains/vfx.ts +27 -27
- package/package.json +1 -1
- package/skills/unitycli/SKILL.md +1 -1
- package/skills/unitycli/manifest.json +1 -1
- package/skills/unitycli/references/operation-protocol.md +1 -1
- package/unitypkg/Editor/Bridge/BridgeHttpServer.cs +2 -2
- package/unitypkg/Editor/Commands/ProjectToolCommands.cs +7 -7
- package/unitypkg/Editor/Commands/RuntimeToolCommands.cs +6 -6
- package/unitypkg/Editor/Generated/UnityCliToolCompletionRegistry.g.cs +147 -147
- package/unitypkg/Editor/Infrastructure/CodeExecSupport.cs +4 -4
- package/unitypkg/Editor/Infrastructure/UnityCliAdmission.cs +17 -17
- package/unitypkg/Editor/Infrastructure/UnityCliCompileCoordinator.cs +61 -54
- package/unitypkg/Editor/Infrastructure/UnityCliJson.cs +0 -18
- package/unitypkg/Editor/Infrastructure/UnityCliLiveRefreshCoordinator.cs +26 -21
- package/unitypkg/Editor/Infrastructure/UnityCliObjectPatch.cs +1 -1
- package/unitypkg/Editor/Infrastructure/UnityCliObjectRef.cs +5 -5
- package/unitypkg/Editor/Infrastructure/UnityCliOperationCoordinator.cs +32 -32
- package/unitypkg/Editor/Infrastructure/UnityCliReflection.cs +12 -12
- package/unitypkg/Editor/Infrastructure/UnityCliRuntimeExecutor.cs +1 -1
- package/unitypkg/Editor/ProjectTools/ProjectToolRegistry.cs +5 -5
- package/unitypkg/Editor/Tools/{animation → animation-clip}/AnimationToolSupport.cs +3 -3
- package/unitypkg/Editor/Tools/{animation/clip → animation-clip}/create.cs +4 -4
- package/unitypkg/Editor/Tools/{animation/clip.cs → animation-clip/read.cs} +3 -3
- package/unitypkg/Editor/Tools/{animation/clip/modify.cs → animation-clip/update.cs} +5 -5
- package/unitypkg/Editor/Tools/{animation/animator → animator}/crossfade.cs +1 -1
- package/unitypkg/Editor/Tools/{animation/animator → animator}/get-info.cs +1 -1
- package/unitypkg/Editor/Tools/{animation/animator → animator}/get-parameter.cs +1 -1
- package/unitypkg/Editor/Tools/{animation/state.cs → animator/get-state.cs} +3 -3
- package/unitypkg/Editor/Tools/{animation → animator}/play.cs +5 -5
- package/unitypkg/Editor/Tools/{animation/animator → animator}/set-enabled.cs +1 -1
- package/unitypkg/Editor/Tools/{animation/animator → animator}/set-parameter.cs +1 -1
- package/unitypkg/Editor/Tools/{animation/animator → animator}/set-speed.cs +1 -1
- package/unitypkg/Editor/Tools/{animation → animator}/stop.cs +4 -4
- package/unitypkg/Editor/Tools/{controller → animator-controller}/add-blend-tree-child.cs +10 -10
- package/unitypkg/Editor/Tools/{controller → animator-controller}/add-layer.cs +6 -6
- package/unitypkg/Editor/Tools/{controller → animator-controller}/add-parameter.cs +6 -6
- package/unitypkg/Editor/Tools/{controller → animator-controller}/add-state.cs +7 -7
- package/unitypkg/Editor/Tools/{controller → animator-controller}/add-transition.cs +9 -9
- package/unitypkg/Editor/Tools/{controller → animator-controller}/assign.cs +6 -6
- package/unitypkg/Editor/Tools/{controller → animator-controller}/create-blend-tree-1d.cs +7 -7
- package/unitypkg/Editor/Tools/{controller → animator-controller}/create-blend-tree-2d.cs +7 -7
- package/unitypkg/Editor/Tools/{controller → animator-controller}/create.cs +4 -4
- package/unitypkg/Editor/Tools/{controller → animator-controller}/get-info.cs +4 -4
- package/unitypkg/Editor/Tools/{controller → animator-controller}/remove-layer.cs +8 -8
- package/unitypkg/Editor/Tools/{controller → animator-controller}/set-layer-weight.cs +6 -6
- package/unitypkg/Editor/Tools/asset/preview.cs +1 -1
- package/unitypkg/Editor/Tools/asset/{modify.cs → write-text.cs} +6 -6
- package/unitypkg/Editor/Tools/component/get.cs +1 -1
- package/unitypkg/Editor/Tools/component/list-types.cs +2 -2
- package/unitypkg/Editor/Tools/component/modify.cs +1 -1
- package/unitypkg/Editor/Tools/component/set.cs +1 -1
- package/unitypkg/Editor/Tools/console/{get.cs → read.cs} +3 -3
- package/unitypkg/Editor/Tools/editor/{play.cs → play-mode/start.cs} +5 -5
- package/unitypkg/Editor/Tools/editor/{stop.cs → play-mode/stop.cs} +5 -5
- package/unitypkg/Editor/Tools/editor/search.cs +1 -1
- package/unitypkg/Editor/Tools/{go → game-object}/GameObjectToolSupport.cs +5 -22
- package/unitypkg/Editor/Tools/{go → game-object}/create.cs +11 -11
- package/unitypkg/Editor/Tools/{go → game-object}/delete.cs +7 -7
- package/unitypkg/Editor/Tools/{go → game-object}/duplicate.cs +6 -6
- package/unitypkg/Editor/Tools/{go → game-object}/find.cs +5 -5
- package/unitypkg/Editor/Tools/{go → game-object}/look-at.cs +8 -8
- package/unitypkg/Editor/Tools/{go → game-object}/modify.cs +9 -9
- package/unitypkg/Editor/Tools/{go → game-object}/move-relative.cs +7 -7
- package/unitypkg/Editor/Tools/{scene/move-object.cs → game-object/move-to-scene.cs} +7 -7
- package/unitypkg/Editor/Tools/{go → game-object}/set-parent.cs +9 -9
- package/unitypkg/Editor/Tools/{graphics/bake-cancel.cs → lighting/bake/cancel.cs} +4 -4
- package/unitypkg/Editor/Tools/{graphics/bake-clear.cs → lighting/bake/clear.cs} +4 -4
- package/unitypkg/Editor/Tools/{graphics/bake-reflection-probe.cs → lighting/bake/reflection-probe.cs} +3 -3
- package/unitypkg/Editor/Tools/{graphics/bake-settings.cs → lighting/bake/settings.cs} +12 -12
- package/unitypkg/Editor/Tools/{graphics/bake-start.cs → lighting/bake/start.cs} +5 -5
- package/unitypkg/Editor/Tools/{graphics/bake-status.cs → lighting/bake/status.cs} +3 -3
- package/unitypkg/Editor/Tools/{graphics → lighting}/light-probe-group.cs +7 -7
- package/unitypkg/Editor/Tools/{graphics → lighting}/reflection-probe.cs +12 -12
- package/unitypkg/Editor/Tools/{graphics/skybox-get.cs → lighting/skybox/get.cs} +3 -3
- package/unitypkg/Editor/Tools/{graphics/skybox-set-ambient.cs → lighting/skybox/set-ambient.cs} +3 -3
- package/unitypkg/Editor/Tools/{graphics/skybox-set-fog.cs → lighting/skybox/set-fog.cs} +3 -3
- package/unitypkg/Editor/Tools/{graphics/skybox-set-material.cs → lighting/skybox/set-material.cs} +5 -5
- package/unitypkg/Editor/Tools/{graphics/skybox-set-properties.cs → lighting/skybox/set-properties.cs} +5 -5
- package/unitypkg/Editor/Tools/{graphics/skybox-set-reflection.cs → lighting/skybox/set-reflection.cs} +3 -3
- package/unitypkg/Editor/Tools/{graphics/skybox-set-sun.cs → lighting/skybox/set-sun.cs} +5 -5
- package/unitypkg/Editor/Tools/{project → project-settings}/ProjectSettingsToolSupport.cs +5 -5
- package/unitypkg/Editor/Tools/{project → project-settings}/audio-settings/set.cs +3 -3
- package/unitypkg/Editor/Tools/{project → project-settings}/audio-settings.cs +4 -4
- package/unitypkg/Editor/Tools/{project → project-settings}/info.cs +4 -4
- package/unitypkg/Editor/Tools/{project → project-settings}/input-settings/set.cs +3 -3
- package/unitypkg/Editor/Tools/{project → project-settings}/input-settings.cs +4 -4
- package/unitypkg/Editor/Tools/project-settings/layer/add.cs +3 -0
- package/unitypkg/Editor/Tools/project-settings/layer/remove.cs +3 -0
- package/unitypkg/Editor/Tools/{project → project-settings}/layers.cs +4 -4
- package/unitypkg/Editor/Tools/{project → project-settings}/player-settings/set.cs +4 -4
- package/unitypkg/Editor/Tools/{project → project-settings}/player-settings.cs +4 -4
- package/unitypkg/Editor/Tools/project-settings/tag/add.cs +3 -0
- package/unitypkg/Editor/Tools/project-settings/tag/remove.cs +3 -0
- package/unitypkg/Editor/Tools/{project → project-settings}/tags.cs +4 -4
- package/unitypkg/Editor/Tools/{project → project-settings}/time-settings/set.cs +3 -3
- package/unitypkg/Editor/Tools/{project → project-settings}/time-settings.cs +4 -4
- package/unitypkg/Editor/Tools/{graphics → rendering}/GraphicsToolSupport.cs +3 -3
- package/unitypkg/Editor/Tools/rendering/pipeline/info.cs +19 -0
- package/unitypkg/Editor/Tools/{graphics/pipeline-settings.cs → rendering/pipeline/settings.cs} +4 -4
- package/unitypkg/Editor/Tools/{graphics → rendering}/quality.cs +17 -17
- package/unitypkg/Editor/Tools/{graphics → rendering}/scene-debug.cs +4 -4
- package/unitypkg/Editor/Tools/rendering/stats.cs +17 -0
- package/unitypkg/Editor/Tools/{reflection → runtime-reflection}/method/find.cs +5 -5
- package/unitypkg/Editor/Tools/{reflection/method/call.cs → runtime-reflection/method/invoke.cs} +7 -7
- package/unitypkg/Editor/Tools/{reflection → runtime-reflection}/type/schema.cs +5 -5
- package/unitypkg/Editor/Tools/scene/gameobject-support.cs +1 -1
- package/unitypkg/Editor/Tools/scene/gameobject.cs +1 -1
- package/unitypkg/Editor/Tools/scene/hierarchy.cs +1 -1
- package/unitypkg/Editor/Tools/{camera/screenshot.cs → screenshot/from-camera.cs} +4 -4
- package/unitypkg/Editor/Tools/{object/modify.cs → serialized-object/patch.cs} +8 -8
- package/unitypkg/Editor/Tools/{object/get-data.cs → serialized-object/read.cs} +4 -4
- package/unitypkg/Editor/Tools/{graphics/volume.cs → volume/list.cs} +3 -3
- package/unitypkg/Editor/UnityCliBridge.cs +3 -22
- package/unitypkg/Runtime/Infrastructure/UnityCliRuntimeBridge.cs +15 -15
- package/unitypkg/Runtime/Infrastructure/UnityCliRuntimeRegistry.cs +1 -1
- package/unitypkg/Runtime/Tools/UnityCliRuntimeTools.cs +22 -22
- package/unitypkg/Shared/UnityCliBridgeQueuePolicy.cs +1 -1
- package/unitypkg/Tests/Editor/UnityCliAdmissionCoordinatorIntegrationTests.cs +7 -7
- package/unitypkg/Tests/Editor/UnityCliBridgeAdmissionIntegrationTests.cs +6 -6
- package/unitypkg/Tests/Editor/UnityCliBridgeQueuePolicyTests.cs +3 -3
- package/unitypkg/Tests/Editor/UnityCliContinuationIntegrationTests.cs +1 -1
- package/unitypkg/Tests/Editor/UnityCliRequestBudgetTests.cs +4 -4
- package/unitypkg/Tests/Editor/UnityCliRuntimeBridgeIntegrationTests.cs +15 -15
- package/unitypkg/Tests/Runtime/UnityCliRuntimeCatalogValidationTests.cs +5 -5
- package/unitypkg/package.json +1 -1
- package/dist/bridge/domains/graphics.d.ts +0 -2
- package/dist/bridge/domains/graphics.js +0 -170
- package/dist/bridge/domains/graphics.js.map +0 -1
- package/dist/bridge/domains/object.d.ts +0 -2
- package/dist/bridge/domains/object.js.map +0 -1
- package/dist/bridge/domains/package.d.ts +0 -2
- package/dist/bridge/domains/package.js +0 -2
- package/dist/bridge/domains/package.js.map +0 -1
- package/dist/bridge/domains/project-tool.d.ts +0 -2
- package/dist/bridge/domains/project-tool.js.map +0 -1
- package/dist/bridge/domains/reflection.d.ts +0 -2
- package/dist/bridge/domains/reflection.js.map +0 -1
- package/dist/bridge/domains/runtime-tool.d.ts +0 -2
- package/dist/bridge/domains/runtime-tool.js.map +0 -1
- package/dist/tools/code/exec.js.map +0 -1
- package/dist/tools/reflect/member.js.map +0 -1
- package/dist/tools/reflect/search.js.map +0 -1
- package/dist/tools/reflect/type.js.map +0 -1
- package/dist/tools/runtime/console.js.map +0 -1
- package/dist/tools/runtime/input/key.js.map +0 -1
- package/dist/tools/runtime/input/pointer.js.map +0 -1
- package/dist/tools/runtime/log.js.map +0 -1
- package/dist/tools/runtime/state.js.map +0 -1
- package/dist/tools/runtime/target-framerate/set.js.map +0 -1
- package/dist/tools/runtime/time-scale/set.js.map +0 -1
- package/dist/tools/runtime/ui/capture-element.js.map +0 -1
- package/unitypkg/Editor/Tools/graphics/pipeline-info.cs +0 -19
- package/unitypkg/Editor/Tools/graphics/stats.cs +0 -17
- package/unitypkg/Editor/Tools/project/layer/add.cs +0 -3
- package/unitypkg/Editor/Tools/project/layer/remove.cs +0 -3
- package/unitypkg/Editor/Tools/project/tag/add.cs +0 -3
- package/unitypkg/Editor/Tools/project/tag/remove.cs +0 -3
- /package/dist/tools/{runtime → player-runtime}/console.d.ts +0 -0
- /package/dist/tools/{runtime → player-runtime}/input/key.d.ts +0 -0
- /package/dist/tools/{runtime → player-runtime}/input/pointer.d.ts +0 -0
- /package/dist/tools/{runtime → player-runtime}/log.d.ts +0 -0
- /package/dist/tools/{runtime → player-runtime}/state.d.ts +0 -0
- /package/dist/tools/{runtime → player-runtime}/target-framerate/set.d.ts +0 -0
- /package/dist/tools/{runtime → player-runtime}/time-scale/set.d.ts +0 -0
- /package/dist/tools/{runtime → player-runtime}/ui/capture-element.d.ts +0 -0
- /package/dist/tools/{reflect/member.d.ts → type-inspection/get-member.d.ts} +0 -0
- /package/dist/tools/{reflect/type.d.ts → type-inspection/get-type.d.ts} +0 -0
- /package/dist/tools/{reflect → type-inspection}/search.d.ts +0 -0
- /package/unitypkg/Editor/Tools/{animation → animator}/AnimatorRuntimeToolSupport.cs +0 -0
- /package/unitypkg/Editor/Tools/{project → project-settings}/ProjectSettingsReader.cs +0 -0
- /package/unitypkg/Editor/Tools/{project → project-settings}/ProjectTagLayerToolSupport.cs +0 -0
- /package/unitypkg/Editor/Tools/{object → serialized-object}/ObjectToolSupport.cs +0 -0
|
@@ -3,11 +3,11 @@ using System.Collections.Generic;
|
|
|
3
3
|
using UnityEngine;
|
|
4
4
|
namespace UnityCli
|
|
5
5
|
{
|
|
6
|
-
public class
|
|
6
|
+
public class LightingSkyboxSetFogTool : IUnityCliTool<LightingSkyboxSetFogTool.Request, LightingSkyboxSetFogTool.Result>
|
|
7
7
|
{
|
|
8
8
|
public sealed class Request { public bool? Enabled { get; set; } public string Mode { get; set; } public string Color { get; set; } public float? Density { get; set; } public float? StartDistance { get; set; } public float? EndDistance { get; set; } }
|
|
9
9
|
public sealed class Result { public bool Fog { get; set; } public string FogMode { get; set; } public string FogColor { get; set; } public double FogDensity { get; set; } public double FogStartDistance { get; set; } public double FogEndDistance { get; set; } public List<GraphicsPlannedEffect> PlannedEffects { get; set; } }
|
|
10
|
-
public ToolDescriptor Describe() => new() { Name = "
|
|
10
|
+
public ToolDescriptor Describe() => new() { Name = "lighting.skybox.set-fog", Summary = "Set fog.", Description = "Set RenderSettings fog values.", Group = "lighting",SideEffects = new[] { "settings-write" }, Target = "editor", PlayModeSupport = "supported", DefaultTimeoutMs = 30000, MaxTimeoutMs = 600000, Examples = new[] { new ToolExample { Description = "Enable linear fog", Input = new Request { Enabled = true, Mode = "Linear", Color = "#808080", StartDistance = 0f, EndDistance = 100f } } } };
|
|
11
11
|
public System.Threading.Tasks.ValueTask<Result> ExecuteAsync(Request r, UnityCliProjectToolContext ctx, System.Threading.CancellationToken ct = default)
|
|
12
12
|
{
|
|
13
13
|
FogMode? mode = string.IsNullOrEmpty(r.Mode) ? (FogMode?)null : GraphicsToolSupport.ParseEnum<FogMode>(r.Mode, "mode"); var color = string.IsNullOrEmpty(r.Color) ? (Color?)null : GraphicsToolSupport.ParseColor(r.Color);
|
|
@@ -16,7 +16,7 @@ namespace UnityCli
|
|
|
16
16
|
if (!r.Enabled.HasValue && !mode.HasValue && !color.HasValue && !density.HasValue && !start.HasValue && !end.HasValue) return new System.Threading.Tasks.ValueTask<Result>(Read(new List<GraphicsPlannedEffect>()));
|
|
17
17
|
ctx.CommitEffect(); if (r.Enabled.HasValue) RenderSettings.fog = r.Enabled.Value; if (mode.HasValue) RenderSettings.fogMode = mode.Value; if (color.HasValue) RenderSettings.fogColor = color.Value; if (density.HasValue) RenderSettings.fogDensity = density.Value; if (start.HasValue) RenderSettings.fogStartDistance = start.Value; if (end.HasValue) RenderSettings.fogEndDistance = end.Value;
|
|
18
18
|
if ((r.Enabled.HasValue && RenderSettings.fog != r.Enabled.Value) || (mode.HasValue && RenderSettings.fogMode != mode.Value) || (color.HasValue && !GraphicsToolSupport.SameColor(RenderSettings.fogColor, color.Value)) || (density.HasValue && !Mathf.Approximately(RenderSettings.fogDensity, density.Value)) || (start.HasValue && !Mathf.Approximately(RenderSettings.fogStartDistance, start.Value)) || (end.HasValue && !Mathf.Approximately(RenderSettings.fogEndDistance, end.Value))) throw new UnityCliBridge.BridgeCommandException("E_FOG_STATE_MISMATCH", "Fog settings readback did not match the request.", "Retry after the editor is idle.");
|
|
19
|
-
return new System.Threading.Tasks.ValueTask<Result>(Read(new List<GraphicsPlannedEffect> { new GraphicsPlannedEffect { Type = "
|
|
19
|
+
return new System.Threading.Tasks.ValueTask<Result>(Read(new List<GraphicsPlannedEffect> { new GraphicsPlannedEffect { Type = "lighting.skybox.set-fog", Property = "fog", Value = "updated" } }));
|
|
20
20
|
}
|
|
21
21
|
private static Result Read(List<GraphicsPlannedEffect> effects) { return new Result { Fog = RenderSettings.fog, FogMode = RenderSettings.fogMode.ToString(), FogColor = GraphicsToolSupport.ColorHtml(RenderSettings.fogColor), FogDensity = RenderSettings.fogDensity, FogStartDistance = RenderSettings.fogStartDistance, FogEndDistance = RenderSettings.fogEndDistance, PlannedEffects = effects }; }
|
|
22
22
|
}
|
package/unitypkg/Editor/Tools/{graphics/skybox-set-material.cs → lighting/skybox/set-material.cs}
RENAMED
|
@@ -6,15 +6,15 @@ using UnityEngine.Rendering;
|
|
|
6
6
|
|
|
7
7
|
namespace UnityCli
|
|
8
8
|
{
|
|
9
|
-
/// <summary>
|
|
10
|
-
public class
|
|
9
|
+
/// <summary>lighting.skybox.set-material — 设置 RenderSettings.skybox 材质。</summary>
|
|
10
|
+
public class LightingSkyboxSetMaterialTool : IUnityCliTool<LightingSkyboxSetMaterialTool.Request, LightingSkyboxSetMaterialTool.Result>
|
|
11
11
|
{
|
|
12
12
|
public sealed class Request { public string Material { get; set; } }
|
|
13
13
|
public sealed class Result { public string Skybox { get; set; } public List<GraphicsPlannedEffect> PlannedEffects { get; set; } }
|
|
14
|
-
public ToolDescriptor Describe() => new() { Name = "
|
|
14
|
+
public ToolDescriptor Describe() => new() { Name = "lighting.skybox.set-material", Summary = "Set the RenderSettings skybox material from an Assets/*.mat path.", Description = "Set RenderSettings.skybox. Accepts builtin:Default-Skybox to restore the built-in skybox.", Group = "lighting",DestructiveHint = false, SideEffects = new[] { "settings-write" }, Target = "editor", PlayModeSupport = "supported", DefaultTimeoutMs = 30000, MaxTimeoutMs = 600000, Examples = new[] { new ToolExample { Description = "Set skybox material", Input = new Request { Material = "Assets/Skyboxes/Day.mat" } } } };
|
|
15
15
|
public System.Threading.Tasks.ValueTask<Result> ExecuteAsync(Request r, UnityCliProjectToolContext ctx, System.Threading.CancellationToken ct = default)
|
|
16
16
|
{
|
|
17
|
-
if (string.IsNullOrEmpty(r.Material)) throw new UnityCliBridge.BridgeCommandException("E_MATERIAL_PATH_REQUIRED", "Pass --material <Assets/*.mat path>.", "Use tools run
|
|
17
|
+
if (string.IsNullOrEmpty(r.Material)) throw new UnityCliBridge.BridgeCommandException("E_MATERIAL_PATH_REQUIRED", "Pass --material <Assets/*.mat path>.", "Use tools run lighting.skybox.set-material --input '{\"material\":\"Assets/Skyboxes/Day.mat\"}'.");
|
|
18
18
|
var material = GraphicsToolSupport.ResolveSkyboxMaterial(r.Material);
|
|
19
19
|
if (material == null) throw new UnityCliBridge.BridgeCommandException("E_MATERIAL_NOT_FOUND", "Skybox material not found: " + r.Material, "Pass an existing Assets/*.mat path.");
|
|
20
20
|
var materialPath = AssetDatabase.GetAssetPath(material);
|
|
@@ -26,7 +26,7 @@ namespace UnityCli
|
|
|
26
26
|
var observedPath = observed == null ? null : AssetDatabase.GetAssetPath(observed);
|
|
27
27
|
var observedGuid = string.IsNullOrEmpty(observedPath) ? null : AssetDatabase.AssetPathToGUID(observedPath);
|
|
28
28
|
if (observed == null || !string.Equals(observedGuid, materialGuid, System.StringComparison.Ordinal) || (materialGuid == null && observed != material)) throw new UnityCliBridge.BridgeCommandException("E_SKYBOX_MATERIAL_STATE_MISMATCH", "Skybox material GUID readback did not match the request.", "Retry after the editor is idle.");
|
|
29
|
-
return new System.Threading.Tasks.ValueTask<Result>(new Result { Skybox = observed.name, PlannedEffects = new List<GraphicsPlannedEffect> { new GraphicsPlannedEffect { Type = "
|
|
29
|
+
return new System.Threading.Tasks.ValueTask<Result>(new Result { Skybox = observed.name, PlannedEffects = new List<GraphicsPlannedEffect> { new GraphicsPlannedEffect { Type = "lighting.skybox.set-material", Property = "skybox", Value = r.Material } } });
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
32
|
}
|
|
@@ -6,16 +6,16 @@ using UnityEngine.Rendering;
|
|
|
6
6
|
|
|
7
7
|
namespace UnityCli
|
|
8
8
|
{
|
|
9
|
-
/// <summary>
|
|
10
|
-
public class
|
|
9
|
+
/// <summary>lighting.skybox.set-properties — 设置当前 skybox 材质的 shader 属性。</summary>
|
|
10
|
+
public class LightingSkyboxSetPropertiesTool : IUnityCliTool<LightingSkyboxSetPropertiesTool.Request, LightingSkyboxSetPropertiesTool.Result>
|
|
11
11
|
{
|
|
12
12
|
public sealed class Request { public string Property { get; set; } public string Value { get; set; } }
|
|
13
13
|
public sealed class Result { public string Skybox { get; set; } public List<GraphicsPlannedEffect> PlannedEffects { get; set; } }
|
|
14
|
-
public ToolDescriptor Describe() => new() { Name = "
|
|
14
|
+
public ToolDescriptor Describe() => new() { Name = "lighting.skybox.set-properties", Summary = "Set a shader property on the current skybox material.", Description = "Set a float or color property on RenderSettings.skybox. Requires a skybox to be assigned first.", Group = "lighting",DestructiveHint = true, SideEffects = new[] { "settings-write" }, Target = "editor", PlayModeSupport = "editor-only", DefaultTimeoutMs = 30000, MaxTimeoutMs = 600000, Examples = new[] { new ToolExample { Description = "Set exposure", Input = new Request { Property = "_Exposure", Value = "1.5" } } } };
|
|
15
15
|
public System.Threading.Tasks.ValueTask<Result> ExecuteAsync(Request r, UnityCliProjectToolContext ctx, System.Threading.CancellationToken ct = default)
|
|
16
16
|
{
|
|
17
17
|
var skybox = RenderSettings.skybox;
|
|
18
|
-
if (skybox == null) throw new UnityCliBridge.BridgeCommandException("E_SKYBOX_NOT_SET", "No skybox material is assigned to RenderSettings.", "Use
|
|
18
|
+
if (skybox == null) throw new UnityCliBridge.BridgeCommandException("E_SKYBOX_NOT_SET", "No skybox material is assigned to RenderSettings.", "Use lighting.skybox.set-material first.");
|
|
19
19
|
var effects = new List<GraphicsPlannedEffect>();
|
|
20
20
|
if (string.IsNullOrEmpty(r.Property) != string.IsNullOrEmpty(r.Value)) throw new UnityCliBridge.BridgeCommandException("E_SKYBOX_PROPERTY_INPUT_INVALID", "property and value must be provided together.", "Pass a material property and value.");
|
|
21
21
|
if (!string.IsNullOrEmpty(r.Property))
|
|
@@ -42,7 +42,7 @@ namespace UnityCli
|
|
|
42
42
|
var observed = GraphicsToolSupport.ReloadAsset<Material>(skyboxPath, skyboxGuid);
|
|
43
43
|
if (observed == null || (color.HasValue && !GraphicsToolSupport.SameColor(observed.GetColor(r.Property), color.Value)) || (number.HasValue && !Mathf.Approximately(observed.GetFloat(r.Property), number.Value)) || (isInt && observed.GetInt(r.Property) != parsedInt)) throw new UnityCliBridge.BridgeCommandException("E_SKYBOX_PROPERTY_STATE_MISMATCH", "Skybox property readback did not match the request.", "Retry after the editor is idle.");
|
|
44
44
|
skybox = observed;
|
|
45
|
-
effects.Add(new GraphicsPlannedEffect { Type = "
|
|
45
|
+
effects.Add(new GraphicsPlannedEffect { Type = "lighting.skybox.set-properties", Property = r.Property, Value = r.Value });
|
|
46
46
|
}
|
|
47
47
|
return new System.Threading.Tasks.ValueTask<Result>(new Result { Skybox = skybox.name, PlannedEffects = effects });
|
|
48
48
|
}
|
|
@@ -4,11 +4,11 @@ using UnityEngine;
|
|
|
4
4
|
using UnityEngine.Rendering;
|
|
5
5
|
namespace UnityCli
|
|
6
6
|
{
|
|
7
|
-
public class
|
|
7
|
+
public class LightingSkyboxSetReflectionTool : IUnityCliTool<LightingSkyboxSetReflectionTool.Request, LightingSkyboxSetReflectionTool.Result>
|
|
8
8
|
{
|
|
9
9
|
public sealed class Request { public string Mode { get; set; } public int? Bounces { get; set; } public float? Intensity { get; set; } public string Resolution { get; set; } }
|
|
10
10
|
public sealed class Result { public string DefaultReflectionMode { get; set; } public long ReflectionBounces { get; set; } public double ReflectionIntensity { get; set; } public List<GraphicsPlannedEffect> PlannedEffects { get; set; } }
|
|
11
|
-
public ToolDescriptor Describe() => new() { Name = "
|
|
11
|
+
public ToolDescriptor Describe() => new() { Name = "lighting.skybox.set-reflection", Summary = "Set reflection settings.", Description = "Set RenderSettings reflection values.", Group = "lighting",SideEffects = new[] { "settings-write" }, Target = "editor", PlayModeSupport = "supported", DefaultTimeoutMs = 30000, MaxTimeoutMs = 600000, Examples = new[] { new ToolExample { Description = "Configure skybox reflections", Input = new Request { Mode = "Skybox", Bounces = 1, Intensity = 1f, Resolution = "128" } } } };
|
|
12
12
|
public System.Threading.Tasks.ValueTask<Result> ExecuteAsync(Request r, UnityCliProjectToolContext ctx, System.Threading.CancellationToken ct = default)
|
|
13
13
|
{
|
|
14
14
|
DefaultReflectionMode? mode = string.IsNullOrEmpty(r.Mode) ? (DefaultReflectionMode?)null : GraphicsToolSupport.ParseEnum<DefaultReflectionMode>(r.Mode, "mode"); if (r.Bounces.HasValue && (r.Bounces.Value < 0 || r.Bounces.Value > 100)) throw new UnityCliBridge.BridgeCommandException("E_GRAPHICS_RANGE_INVALID", "Invalid reflection bounces.", "Pass bounces from 0 to 100."); var intensity = r.Intensity.HasValue ? GraphicsToolSupport.ParseFinite(r.Intensity.Value.ToString(System.Globalization.CultureInfo.InvariantCulture), "intensity", 0f, 8f) : (float?)null;
|
|
@@ -23,7 +23,7 @@ namespace UnityCli
|
|
|
23
23
|
if (!mode.HasValue && !r.Bounces.HasValue && !intensity.HasValue && !resolution.HasValue) return new System.Threading.Tasks.ValueTask<Result>(Read(new List<GraphicsPlannedEffect>()));
|
|
24
24
|
ctx.CommitEffect(); if (mode.HasValue) RenderSettings.defaultReflectionMode = mode.Value; if (r.Bounces.HasValue) RenderSettings.reflectionBounces = r.Bounces.Value; if (intensity.HasValue) RenderSettings.reflectionIntensity = intensity.Value; if (resolution.HasValue) RenderSettings.defaultReflectionResolution = resolution.Value;
|
|
25
25
|
if ((mode.HasValue && RenderSettings.defaultReflectionMode != mode.Value) || (r.Bounces.HasValue && RenderSettings.reflectionBounces != r.Bounces.Value) || (intensity.HasValue && !Mathf.Approximately(RenderSettings.reflectionIntensity, intensity.Value)) || (resolution.HasValue && RenderSettings.defaultReflectionResolution != resolution.Value)) throw new UnityCliBridge.BridgeCommandException("E_REFLECTION_STATE_MISMATCH", "Reflection settings readback did not match the request.", "Retry after the editor is idle.");
|
|
26
|
-
return new System.Threading.Tasks.ValueTask<Result>(Read(new List<GraphicsPlannedEffect> { new GraphicsPlannedEffect { Type = "
|
|
26
|
+
return new System.Threading.Tasks.ValueTask<Result>(Read(new List<GraphicsPlannedEffect> { new GraphicsPlannedEffect { Type = "lighting.skybox.set-reflection", Property = "reflection", Value = "updated" } }));
|
|
27
27
|
}
|
|
28
28
|
private static Result Read(List<GraphicsPlannedEffect> effects) { return new Result { DefaultReflectionMode = RenderSettings.defaultReflectionMode.ToString(), ReflectionBounces = RenderSettings.reflectionBounces, ReflectionIntensity = RenderSettings.reflectionIntensity, PlannedEffects = effects }; }
|
|
29
29
|
}
|
|
@@ -6,19 +6,19 @@ using UnityEngine.Rendering;
|
|
|
6
6
|
|
|
7
7
|
namespace UnityCli
|
|
8
8
|
{
|
|
9
|
-
/// <summary>
|
|
10
|
-
public class
|
|
9
|
+
/// <summary>lighting.skybox.set-sun — 设置 RenderSettings.sun 方向光。</summary>
|
|
10
|
+
public class LightingSkyboxSetSunTool : IUnityCliTool<LightingSkyboxSetSunTool.Request, LightingSkyboxSetSunTool.Result>
|
|
11
11
|
{
|
|
12
12
|
public sealed class Request { public string Target { get; set; } }
|
|
13
13
|
public sealed class Result { public string Sun { get; set; } public List<GraphicsPlannedEffect> PlannedEffects { get; set; } }
|
|
14
|
-
public ToolDescriptor Describe() => new() { Name = "
|
|
14
|
+
public ToolDescriptor Describe() => new() { Name = "lighting.skybox.set-sun", Summary = "Set the directional Light used as the scene sun for RenderSettings.", Description = "Set RenderSettings.sun from a target GameObject with a Light component. Pass null/empty to clear.", Group = "lighting",DestructiveHint = false, SideEffects = new[] { "settings-write" }, Target = "editor", PlayModeSupport = "supported", DefaultTimeoutMs = 30000, MaxTimeoutMs = 600000, Examples = new[] { new ToolExample { Description = "Set sun light", Input = new Request { Target = "DirectionalLight" } } } };
|
|
15
15
|
public System.Threading.Tasks.ValueTask<Result> ExecuteAsync(Request r, UnityCliProjectToolContext ctx, System.Threading.CancellationToken ct = default)
|
|
16
16
|
{
|
|
17
17
|
Light sun = null;
|
|
18
18
|
var expectedId = 0;
|
|
19
19
|
if (!string.IsNullOrEmpty(r.Target))
|
|
20
20
|
{
|
|
21
|
-
var go = GameObjectToolSupport.ResolveUniqueTarget(r.Target, "
|
|
21
|
+
var go = GameObjectToolSupport.ResolveUniqueTarget(r.Target, "lighting.skybox.set-sun requires --target <go>.");
|
|
22
22
|
sun = go.GetComponent<Light>();
|
|
23
23
|
if (sun == null || sun.type != LightType.Directional) throw new UnityCliBridge.BridgeCommandException("E_DIRECTIONAL_LIGHT_REQUIRED", "Target must have a Directional Light component: " + GameObjectToolSupport.HierarchyPath(go), "Pass a GameObject with a directional Light component.");
|
|
24
24
|
expectedId = sun.GetInstanceID();
|
|
@@ -28,7 +28,7 @@ namespace UnityCli
|
|
|
28
28
|
var observed = RenderSettings.sun;
|
|
29
29
|
if ((expectedId == 0 && observed != null) || (expectedId != 0 && (observed == null || observed.GetInstanceID() != expectedId))) throw new UnityCliBridge.BridgeCommandException("E_SKYBOX_SUN_STATE_MISMATCH", "Skybox sun readback did not match the requested target.", "Retry after the editor is idle.");
|
|
30
30
|
var sunPath = observed == null ? "null" : GameObjectToolSupport.HierarchyPath(observed.gameObject);
|
|
31
|
-
return new System.Threading.Tasks.ValueTask<Result>(new Result { Sun = sunPath, PlannedEffects = new List<GraphicsPlannedEffect> { new GraphicsPlannedEffect { Type = "
|
|
31
|
+
return new System.Threading.Tasks.ValueTask<Result>(new Result { Sun = sunPath, PlannedEffects = new List<GraphicsPlannedEffect> { new GraphicsPlannedEffect { Type = "lighting.skybox.set-sun", Property = "sun", Value = sunPath } } });
|
|
32
32
|
}
|
|
33
33
|
}
|
|
34
34
|
}
|
|
@@ -61,7 +61,7 @@ namespace UnityCli
|
|
|
61
61
|
/// <summary>只更新显式提供的三个 Audio 字段,并从新 SerializedObject 与磁盘文件验证终态。</summary>
|
|
62
62
|
internal static ProjectAudioSettingsSetResult SetAudio(ProjectAudioSettingsSetRequest request, UnityCliProjectToolContext ctx)
|
|
63
63
|
{
|
|
64
|
-
const string toolName = "project.audio-settings.set";
|
|
64
|
+
const string toolName = "project-settings.audio-settings.set";
|
|
65
65
|
EnsureReady(toolName);
|
|
66
66
|
request = request ?? new ProjectAudioSettingsSetRequest();
|
|
67
67
|
if (!request.Volume.HasValue && !request.RolloffScale.HasValue && !request.DopplerFactor.HasValue)
|
|
@@ -149,7 +149,7 @@ namespace UnityCli
|
|
|
149
149
|
/// <summary>冻结唯一命名axis和三个批准字段,effect后按index/name/value与文件身份重新证明。</summary>
|
|
150
150
|
internal static ProjectInputSettingsSetResult SetInput(ProjectInputSettingsSetRequest request, UnityCliProjectToolContext ctx)
|
|
151
151
|
{
|
|
152
|
-
const string toolName = "project.input-settings.set";
|
|
152
|
+
const string toolName = "project-settings.input-settings.set";
|
|
153
153
|
EnsureReady(toolName);
|
|
154
154
|
request = request ?? new ProjectInputSettingsSetRequest();
|
|
155
155
|
if (string.IsNullOrEmpty(request.Axis))
|
|
@@ -171,7 +171,7 @@ namespace UnityCli
|
|
|
171
171
|
{
|
|
172
172
|
var axes = RequireArray(inspect, surface.InputAxes);
|
|
173
173
|
var matches = FindAxes(axes, request.Axis, surface);
|
|
174
|
-
if (matches.Count == 0) throw new UnityCliBridge.BridgeCommandException("E_PROJECT_INPUT_AXIS_NOT_FOUND", "No legacy Input Manager axis exactly matches '" + request.Axis + "'.", "Run project.input-settings with an axis filter or inspect a bounded page before retrying.");
|
|
174
|
+
if (matches.Count == 0) throw new UnityCliBridge.BridgeCommandException("E_PROJECT_INPUT_AXIS_NOT_FOUND", "No legacy Input Manager axis exactly matches '" + request.Axis + "'.", "Run project-settings.input-settings with an axis filter or inspect a bounded page before retrying.");
|
|
175
175
|
// 官方name selector固定选择配置顺序中的首项;index/name在barrier前共同冻结。
|
|
176
176
|
beforeAxis = ReadAxis(axes.GetArrayElementAtIndex(matches[0]), matches[0], surface);
|
|
177
177
|
}
|
|
@@ -261,7 +261,7 @@ namespace UnityCli
|
|
|
261
261
|
/// <summary>PlayerSettings enum按当前Unity定义精确解析;reload风险显式投影但不在断线后重放。</summary>
|
|
262
262
|
internal static ProjectPlayerSettingsSetResult SetPlayer(ProjectPlayerSettingsSetRequest request, UnityCliProjectToolContext ctx)
|
|
263
263
|
{
|
|
264
|
-
const string toolName = "project.player-settings.set";
|
|
264
|
+
const string toolName = "project-settings.player-settings.set";
|
|
265
265
|
EnsureReady(toolName);
|
|
266
266
|
request = request ?? new ProjectPlayerSettingsSetRequest();
|
|
267
267
|
if (request.CompanyName == null && request.ProductName == null && request.BundleVersion == null && request.ScriptingBackend == null && request.ApiCompatibilityLevel == null)
|
|
@@ -323,7 +323,7 @@ namespace UnityCli
|
|
|
323
323
|
/// <summary>Time写入先验证effective fixed/maximum关系,再保存唯一TimeManager asset并fresh证明。</summary>
|
|
324
324
|
internal static ProjectTimeSettingsSetResult SetTime(ProjectTimeSettingsSetRequest request, UnityCliProjectToolContext ctx)
|
|
325
325
|
{
|
|
326
|
-
const string toolName = "project.time-settings.set";
|
|
326
|
+
const string toolName = "project-settings.time-settings.set";
|
|
327
327
|
EnsureReady(toolName);
|
|
328
328
|
request = request ?? new ProjectTimeSettingsSetRequest();
|
|
329
329
|
if (!request.FixedDeltaTime.HasValue && !request.MaximumDeltaTime.HasValue && !request.TimeScale.HasValue)
|
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
namespace UnityCli
|
|
3
3
|
{
|
|
4
4
|
/// <summary>修改AudioManager批准字段并证明精确文件持久化。</summary>
|
|
5
|
-
public sealed class
|
|
5
|
+
public sealed class ProjectSettingsAudioSettingsSetTool : IUnityCliTool<ProjectAudioSettingsSetRequest, ProjectAudioSettingsSetResult>
|
|
6
6
|
{
|
|
7
7
|
public ToolDescriptor Describe() => new()
|
|
8
8
|
{
|
|
9
|
-
Name = "project.audio-settings.set",
|
|
9
|
+
Name = "project-settings.audio-settings.set",
|
|
10
10
|
Summary = "Set declared project Audio fields and prove persisted AudioManager readback.",
|
|
11
11
|
Description = "Changes only provided volume, rolloffScale, or dopplerFactor fields. volume accepts 0..1 and the other fields accept non-negative finite Unity floats. Framework dry-run returns the exact planned fields without crossing the effect barrier.",
|
|
12
|
-
Group = "project",
|
|
12
|
+
Group = "project-settings",
|
|
13
13
|
DestructiveHint = true,
|
|
14
14
|
SupportsDryRun = true,
|
|
15
15
|
SideEffects = new[] { "project-settings-write" },
|
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
namespace UnityCli
|
|
3
3
|
{
|
|
4
4
|
/// <summary>读取AudioManager批准字段和磁盘身份。</summary>
|
|
5
|
-
public sealed class
|
|
5
|
+
public sealed class ProjectSettingsAudioSettingsTool : IUnityCliTool<ProjectSettingsReadRequest, ProjectAudioSettingsSnapshot>
|
|
6
6
|
{
|
|
7
7
|
public ToolDescriptor Describe() => new()
|
|
8
8
|
{
|
|
9
|
-
Name = "project.audio-settings",
|
|
9
|
+
Name = "project-settings.audio-settings",
|
|
10
10
|
Summary = "Read bounded project Audio settings with exact settings-file identity.",
|
|
11
11
|
Description = "Reads only volume, rolloffScale, and dopplerFactor from the verified AudioManager surface for the current Unity version. The result includes the exact ProjectSettings file SHA-256 and performs no write, import, or reload.",
|
|
12
|
-
Group = "project",
|
|
12
|
+
Group = "project-settings",
|
|
13
13
|
DestructiveHint = false,
|
|
14
14
|
SupportsDryRun = false,
|
|
15
15
|
SideEffects = System.Array.Empty<string>(),
|
|
@@ -24,7 +24,7 @@ namespace UnityCli
|
|
|
24
24
|
public System.Threading.Tasks.ValueTask<ProjectAudioSettingsSnapshot> ExecuteAsync(ProjectSettingsReadRequest request, UnityCliProjectToolContext ctx, System.Threading.CancellationToken ct = default)
|
|
25
25
|
{
|
|
26
26
|
ct.ThrowIfCancellationRequested();
|
|
27
|
-
return new System.Threading.Tasks.ValueTask<ProjectAudioSettingsSnapshot>(ProjectSettingsReader.ReadAudio("project.audio-settings"));
|
|
27
|
+
return new System.Threading.Tasks.ValueTask<ProjectAudioSettingsSnapshot>(ProjectSettingsReader.ReadAudio("project-settings.audio-settings"));
|
|
28
28
|
}
|
|
29
29
|
}
|
|
30
30
|
}
|
|
@@ -5,9 +5,9 @@ using UnityEngine;
|
|
|
5
5
|
namespace UnityCli.Tools.Project
|
|
6
6
|
{
|
|
7
7
|
/// <summary>
|
|
8
|
-
/// project.info 只读 Tool:读取 Unity 项目基础元数据。
|
|
8
|
+
/// project-settings.info 只读 Tool:读取 Unity 项目基础元数据。
|
|
9
9
|
/// </summary>
|
|
10
|
-
public class
|
|
10
|
+
public class ProjectSettingsInfoTool : IUnityCliTool<ProjectSettingsInfoTool.Request, ProjectSettingsInfoTool.Result>
|
|
11
11
|
{
|
|
12
12
|
public sealed class Request { }
|
|
13
13
|
|
|
@@ -23,10 +23,10 @@ namespace UnityCli.Tools.Project
|
|
|
23
23
|
// ── desc:只声明人工字段,source=built-in 表示进入只读 Tool 表 ──
|
|
24
24
|
public ToolDescriptor Describe() => new()
|
|
25
25
|
{
|
|
26
|
-
Name = "project.info", Summary = "Project metadata: name, path, Unity version, and overall project structure.",
|
|
26
|
+
Name = "project-settings.info", Summary = "Project metadata: name, path, Unity version, and overall project structure.",
|
|
27
27
|
Description = "Project metadata: name, path, Unity version, and overall project structure.",
|
|
28
28
|
DestructiveHint = false,
|
|
29
|
-
Group = "project",
|
|
29
|
+
Group = "project-settings",
|
|
30
30
|
Target = "editor",
|
|
31
31
|
PlayModeSupport = "supported",
|
|
32
32
|
Examples = new[] { new ToolExample { Description = "Read project metadata", Input = new Request { } } }
|
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
namespace UnityCli
|
|
3
3
|
{
|
|
4
4
|
/// <summary>按唯一axis名称修改legacy Input Manager批准字段。</summary>
|
|
5
|
-
public sealed class
|
|
5
|
+
public sealed class ProjectSettingsInputSettingsSetTool : IUnityCliTool<ProjectInputSettingsSetRequest, ProjectInputSettingsSetResult>
|
|
6
6
|
{
|
|
7
7
|
public ToolDescriptor Describe() => new()
|
|
8
8
|
{
|
|
9
|
-
Name = "project.input-settings.set",
|
|
9
|
+
Name = "project-settings.input-settings.set",
|
|
10
10
|
Summary = "Set declared fields on one exact legacy Input Manager axis and prove persistence.",
|
|
11
11
|
Description = "Requires one exact case-sensitive axis name and changes only provided sensitivity, gravity, or dead. If the legacy Input Manager contains duplicate names, the first configured entry is selected and its index/name identity is frozen before the effect. InputManager scanning fails closed above 4096 entries. Framework dry-run returns the exact planned fields without writing InputManager.asset.",
|
|
12
|
-
Group = "project",
|
|
12
|
+
Group = "project-settings",
|
|
13
13
|
DestructiveHint = true,
|
|
14
14
|
SupportsDryRun = true,
|
|
15
15
|
SideEffects = new[] { "project-settings-write" },
|
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
namespace UnityCli
|
|
3
3
|
{
|
|
4
4
|
/// <summary>分页读取legacy Input Manager批准字段。</summary>
|
|
5
|
-
public sealed class
|
|
5
|
+
public sealed class ProjectSettingsInputSettingsTool : IUnityCliTool<ProjectInputSettingsRequest, ProjectInputSettingsResult>
|
|
6
6
|
{
|
|
7
7
|
public ToolDescriptor Describe() => new()
|
|
8
8
|
{
|
|
9
|
-
Name = "project.input-settings",
|
|
9
|
+
Name = "project-settings.input-settings",
|
|
10
10
|
Summary = "Read a bounded page of legacy Input Manager axis settings.",
|
|
11
11
|
Description = "Returns only axis name, index, sensitivity, gravity, and dead with total/matched counts and pagination. axis is an optional exact case-sensitive name filter; offset defaults to 0 and limit defaults to 50 with a maximum of 200. InputManager scanning fails closed above 4096 entries.",
|
|
12
|
-
Group = "project",
|
|
12
|
+
Group = "project-settings",
|
|
13
13
|
DestructiveHint = false,
|
|
14
14
|
SupportsDryRun = false,
|
|
15
15
|
SideEffects = System.Array.Empty<string>(),
|
|
@@ -28,7 +28,7 @@ namespace UnityCli
|
|
|
28
28
|
public System.Threading.Tasks.ValueTask<ProjectInputSettingsResult> ExecuteAsync(ProjectInputSettingsRequest request, UnityCliProjectToolContext ctx, System.Threading.CancellationToken ct = default)
|
|
29
29
|
{
|
|
30
30
|
ct.ThrowIfCancellationRequested();
|
|
31
|
-
return new System.Threading.Tasks.ValueTask<ProjectInputSettingsResult>(ProjectSettingsReader.ReadInput(request, "project.input-settings"));
|
|
31
|
+
return new System.Threading.Tasks.ValueTask<ProjectInputSettingsResult>(ProjectSettingsReader.ReadInput(request, "project-settings.input-settings"));
|
|
32
32
|
}
|
|
33
33
|
}
|
|
34
34
|
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
#if UNITY_EDITOR
|
|
2
|
+
namespace UnityCli { public class ProjectSettingsLayerAddTool : IUnityCliTool<ProjectSettingsLayerAddTool.Request, ProjectTagLayerResult> { public sealed class Request { [UnityCliRequired] public string Name { get; set; } public int? Index { get; set; } } public ToolDescriptor Describe() => new() { Name = "project-settings.layer.add", Summary = "Add a persistent Unity user layer.", Description = "Adds name to ProjectSettings/TagManager.asset user layers at index 8 through 31, optionally using index. Available in Edit and Play mode.", Group = "project-settings",DestructiveHint = true, SideEffects = new[] { "project-settings-write" }, Target = "editor", PlayModeSupport = "editor-only", DefaultTimeoutMs = 30000, MaxTimeoutMs = 600000, Examples = new[] { new ToolExample { Description = "Add water layer", Input = new Request { Name = "Water" } } } }; public System.Threading.Tasks.ValueTask<ProjectTagLayerResult> ExecuteAsync(Request request, UnityCliProjectToolContext ctx, System.Threading.CancellationToken ct = default) => ProjectTagLayerToolSupport.Apply(true, true, request.Name, request.Index, "project-settings.layer.add", ctx); } }
|
|
3
|
+
#endif
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
#if UNITY_EDITOR
|
|
2
|
+
namespace UnityCli { public class ProjectSettingsLayerRemoveTool : IUnityCliTool<ProjectSettingsLayerRemoveTool.Request, ProjectTagLayerResult> { public sealed class Request { [UnityCliRequired] public string Name { get; set; } public int? Index { get; set; } } public ToolDescriptor Describe() => new() { Name = "project-settings.layer.remove", Summary = "Remove a persistent Unity user layer.", Description = "Removes name from ProjectSettings/TagManager.asset user layers. index selects a layer slot when needed. Available in Edit and Play mode.", Group = "project-settings",DestructiveHint = true, SideEffects = new[] { "project-settings-write" }, Target = "editor", PlayModeSupport = "editor-only", DefaultTimeoutMs = 30000, MaxTimeoutMs = 600000, Examples = new[] { new ToolExample { Description = "Remove water layer", Input = new Request { Name = "Water" } } } }; public System.Threading.Tasks.ValueTask<ProjectTagLayerResult> ExecuteAsync(Request request, UnityCliProjectToolContext ctx, System.Threading.CancellationToken ct = default) => ProjectTagLayerToolSupport.Apply(true, false, request.Name, request.Index, "project-settings.layer.remove", ctx); } }
|
|
3
|
+
#endif
|
|
@@ -5,9 +5,9 @@ using UnityEngine;
|
|
|
5
5
|
namespace UnityCli.Tools.Project
|
|
6
6
|
{
|
|
7
7
|
/// <summary>
|
|
8
|
-
/// project.layers 只读 Tool:读取 TagManager 中定义的 Layer 索引和名称。
|
|
8
|
+
/// project-settings.layers 只读 Tool:读取 TagManager 中定义的 Layer 索引和名称。
|
|
9
9
|
/// </summary>
|
|
10
|
-
public class
|
|
10
|
+
public class ProjectSettingsLayersTool : IUnityCliTool<ProjectSettingsLayersTool.Request, ProjectSettingsLayersTool.Result>
|
|
11
11
|
{
|
|
12
12
|
public sealed class Request { }
|
|
13
13
|
|
|
@@ -26,10 +26,10 @@ namespace UnityCli.Tools.Project
|
|
|
26
26
|
// ── desc:只声明人工字段,source=built-in 表示进入只读 Tool 表 ──
|
|
27
27
|
public ToolDescriptor Describe() => new()
|
|
28
28
|
{
|
|
29
|
-
Name = "project.layers", Summary = "List all layers defined in the project's Tag Manager.",
|
|
29
|
+
Name = "project-settings.layers", Summary = "List all layers defined in the project's Tag Manager.",
|
|
30
30
|
Description = "List all layers defined in the project's Tag Manager.",
|
|
31
31
|
DestructiveHint = false,
|
|
32
|
-
Group = "project",
|
|
32
|
+
Group = "project-settings",
|
|
33
33
|
Target = "editor",
|
|
34
34
|
PlayModeSupport = "supported",
|
|
35
35
|
Examples = new[] { new ToolExample { Description = "List configured project layers", Input = new Request { } } }
|
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
namespace UnityCli
|
|
3
3
|
{
|
|
4
4
|
/// <summary>修改active build target的PlayerSettings批准字段。</summary>
|
|
5
|
-
public sealed class
|
|
5
|
+
public sealed class ProjectSettingsPlayerSettingsSetTool : IUnityCliTool<ProjectPlayerSettingsSetRequest, ProjectPlayerSettingsSetResult>
|
|
6
6
|
{
|
|
7
7
|
public ToolDescriptor Describe() => new()
|
|
8
8
|
{
|
|
9
|
-
Name = "project.player-settings.set",
|
|
9
|
+
Name = "project-settings.player-settings.set",
|
|
10
10
|
Summary = "Set declared active-target PlayerSettings and return persisted typed readback.",
|
|
11
|
-
Description = "Changes only provided companyName, productName, bundleVersion, scriptingBackend, or apiCompatibilityLevel. Enum names must exactly match values supported by the current Unity version. Backend or API changes may trigger a domain reload; after timeout callers must read project.player-settings before deciding whether to retry.",
|
|
12
|
-
Group = "project",
|
|
11
|
+
Description = "Changes only provided companyName, productName, bundleVersion, scriptingBackend, or apiCompatibilityLevel. Enum names must exactly match values supported by the current Unity version. Backend or API changes may trigger a domain reload; after timeout callers must read project-settings.player-settings before deciding whether to retry.",
|
|
12
|
+
Group = "project-settings",
|
|
13
13
|
DestructiveHint = true,
|
|
14
14
|
SupportsDryRun = true,
|
|
15
15
|
SideEffects = new[] { "project-settings-write", "domain-reload" },
|
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
namespace UnityCli
|
|
3
3
|
{
|
|
4
4
|
/// <summary>读取active build target的PlayerSettings批准字段。</summary>
|
|
5
|
-
public sealed class
|
|
5
|
+
public sealed class ProjectSettingsPlayerSettingsTool : IUnityCliTool<ProjectSettingsReadRequest, ProjectPlayerSettingsSnapshot>
|
|
6
6
|
{
|
|
7
7
|
public ToolDescriptor Describe() => new()
|
|
8
8
|
{
|
|
9
|
-
Name = "project.player-settings",
|
|
9
|
+
Name = "project-settings.player-settings",
|
|
10
10
|
Summary = "Read bounded PlayerSettings for the active named build target.",
|
|
11
11
|
Description = "Returns companyName, productName, bundleVersion, scriptingBackend, and apiCompatibilityLevel for the active build target plus the verified ProjectSettings file identity. It does not change build target or project state.",
|
|
12
|
-
Group = "project",
|
|
12
|
+
Group = "project-settings",
|
|
13
13
|
DestructiveHint = false,
|
|
14
14
|
SupportsDryRun = false,
|
|
15
15
|
SideEffects = System.Array.Empty<string>(),
|
|
@@ -24,7 +24,7 @@ namespace UnityCli
|
|
|
24
24
|
public System.Threading.Tasks.ValueTask<ProjectPlayerSettingsSnapshot> ExecuteAsync(ProjectSettingsReadRequest request, UnityCliProjectToolContext ctx, System.Threading.CancellationToken ct = default)
|
|
25
25
|
{
|
|
26
26
|
ct.ThrowIfCancellationRequested();
|
|
27
|
-
return new System.Threading.Tasks.ValueTask<ProjectPlayerSettingsSnapshot>(ProjectSettingsReader.ReadPlayer("project.player-settings"));
|
|
27
|
+
return new System.Threading.Tasks.ValueTask<ProjectPlayerSettingsSnapshot>(ProjectSettingsReader.ReadPlayer("project-settings.player-settings"));
|
|
28
28
|
}
|
|
29
29
|
}
|
|
30
30
|
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
#if UNITY_EDITOR
|
|
2
|
+
namespace UnityCli { public class ProjectSettingsTagAddTool : IUnityCliTool<ProjectSettingsTagAddTool.Request, ProjectTagLayerResult> { public sealed class Request { [UnityCliRequired] public string Name { get; set; } } public ToolDescriptor Describe() => new() { Name = "project-settings.tag.add", Summary = "Add a persistent Unity Tag Manager tag.", Description = "Adds name to ProjectSettings/TagManager.asset tags. Available in Edit and Play mode.", Group = "project-settings",DestructiveHint = true, SideEffects = new[] { "project-settings-write" }, Target = "editor", PlayModeSupport = "editor-only", DefaultTimeoutMs = 30000, MaxTimeoutMs = 600000, Examples = new[] { new ToolExample { Description = "Add enemy tag", Input = new Request { Name = "Enemy" } } } }; public System.Threading.Tasks.ValueTask<ProjectTagLayerResult> ExecuteAsync(Request request, UnityCliProjectToolContext ctx, System.Threading.CancellationToken ct = default) => ProjectTagLayerToolSupport.Apply(false, true, request.Name, null, "project-settings.tag.add", ctx); } }
|
|
3
|
+
#endif
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
#if UNITY_EDITOR
|
|
2
|
+
namespace UnityCli { public class ProjectSettingsTagRemoveTool : IUnityCliTool<ProjectSettingsTagRemoveTool.Request, ProjectTagLayerResult> { public sealed class Request { [UnityCliRequired] public string Name { get; set; } } public ToolDescriptor Describe() => new() { Name = "project-settings.tag.remove", Summary = "Remove a persistent Unity Tag Manager tag.", Description = "Removes name from ProjectSettings/TagManager.asset tags. Available in Edit and Play mode.", Group = "project-settings",DestructiveHint = true, SideEffects = new[] { "project-settings-write" }, Target = "editor", PlayModeSupport = "editor-only", DefaultTimeoutMs = 30000, MaxTimeoutMs = 600000, Examples = new[] { new ToolExample { Description = "Remove enemy tag", Input = new Request { Name = "Enemy" } } } }; public System.Threading.Tasks.ValueTask<ProjectTagLayerResult> ExecuteAsync(Request request, UnityCliProjectToolContext ctx, System.Threading.CancellationToken ct = default) => ProjectTagLayerToolSupport.Apply(false, false, request.Name, null, "project-settings.tag.remove", ctx); } }
|
|
3
|
+
#endif
|
|
@@ -4,9 +4,9 @@ using UnityEditorInternal;
|
|
|
4
4
|
namespace UnityCli.Tools.Project
|
|
5
5
|
{
|
|
6
6
|
/// <summary>
|
|
7
|
-
/// project.tags 只读 Tool:读取 TagManager 中定义的标签列表。
|
|
7
|
+
/// project-settings.tags 只读 Tool:读取 TagManager 中定义的标签列表。
|
|
8
8
|
/// </summary>
|
|
9
|
-
public class
|
|
9
|
+
public class ProjectSettingsTagsTool : IUnityCliTool<ProjectSettingsTagsTool.Request, ProjectSettingsTagsTool.Result>
|
|
10
10
|
{
|
|
11
11
|
public sealed class Request { }
|
|
12
12
|
|
|
@@ -19,10 +19,10 @@ namespace UnityCli.Tools.Project
|
|
|
19
19
|
// ── desc:只声明人工字段,source=built-in 表示进入只读 Tool 表 ──
|
|
20
20
|
public ToolDescriptor Describe() => new()
|
|
21
21
|
{
|
|
22
|
-
Name = "project.tags", Summary = "List all tags defined in the project's Tag Manager.",
|
|
22
|
+
Name = "project-settings.tags", Summary = "List all tags defined in the project's Tag Manager.",
|
|
23
23
|
Description = "List all tags defined in the project's Tag Manager.",
|
|
24
24
|
DestructiveHint = false,
|
|
25
|
-
Group = "project",
|
|
25
|
+
Group = "project-settings",
|
|
26
26
|
Target = "editor",
|
|
27
27
|
PlayModeSupport = "supported",
|
|
28
28
|
Examples = new[] { new ToolExample { Description = "List configured project tags", Input = new Request { } } }
|
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
namespace UnityCli
|
|
3
3
|
{
|
|
4
4
|
/// <summary>修改TimeManager批准字段并证明持久化。</summary>
|
|
5
|
-
public sealed class
|
|
5
|
+
public sealed class ProjectSettingsTimeSettingsSetTool : IUnityCliTool<ProjectTimeSettingsSetRequest, ProjectTimeSettingsSetResult>
|
|
6
6
|
{
|
|
7
7
|
public ToolDescriptor Describe() => new()
|
|
8
8
|
{
|
|
9
|
-
Name = "project.time-settings.set",
|
|
9
|
+
Name = "project-settings.time-settings.set",
|
|
10
10
|
Summary = "Set declared project Time fields and prove persisted TimeManager readback.",
|
|
11
11
|
Description = "Changes only provided fixedDeltaTime, maximumDeltaTime, or timeScale. Delta values must be positive, maximumDeltaTime must not be below the effective fixedDeltaTime, and timeScale accepts 0..100. Framework dry-run returns the exact planned fields without writing TimeManager.asset.",
|
|
12
|
-
Group = "project",
|
|
12
|
+
Group = "project-settings",
|
|
13
13
|
DestructiveHint = true,
|
|
14
14
|
SupportsDryRun = true,
|
|
15
15
|
SideEffects = new[] { "project-settings-write" },
|
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
namespace UnityCli
|
|
3
3
|
{
|
|
4
4
|
/// <summary>读取TimeManager批准的持久化字段。</summary>
|
|
5
|
-
public sealed class
|
|
5
|
+
public sealed class ProjectSettingsTimeSettingsTool : IUnityCliTool<ProjectSettingsReadRequest, ProjectTimeSettingsSnapshot>
|
|
6
6
|
{
|
|
7
7
|
public ToolDescriptor Describe() => new()
|
|
8
8
|
{
|
|
9
|
-
Name = "project.time-settings",
|
|
9
|
+
Name = "project-settings.time-settings",
|
|
10
10
|
Summary = "Read persisted project Time settings from the verified TimeManager surface.",
|
|
11
11
|
Description = "Reads only fixedDeltaTime, maximumDeltaTime, and timeScale from TimeManager.asset. Values are project configuration rather than transient Play Mode runtime state, and the result includes the exact file SHA-256.",
|
|
12
|
-
Group = "project",
|
|
12
|
+
Group = "project-settings",
|
|
13
13
|
DestructiveHint = false,
|
|
14
14
|
SupportsDryRun = false,
|
|
15
15
|
SideEffects = System.Array.Empty<string>(),
|
|
@@ -24,7 +24,7 @@ namespace UnityCli
|
|
|
24
24
|
public System.Threading.Tasks.ValueTask<ProjectTimeSettingsSnapshot> ExecuteAsync(ProjectSettingsReadRequest request, UnityCliProjectToolContext ctx, System.Threading.CancellationToken ct = default)
|
|
25
25
|
{
|
|
26
26
|
ct.ThrowIfCancellationRequested();
|
|
27
|
-
return new System.Threading.Tasks.ValueTask<ProjectTimeSettingsSnapshot>(ProjectSettingsReader.ReadTime("project.time-settings"));
|
|
27
|
+
return new System.Threading.Tasks.ValueTask<ProjectTimeSettingsSnapshot>(ProjectSettingsReader.ReadTime("project-settings.time-settings"));
|
|
28
28
|
}
|
|
29
29
|
}
|
|
30
30
|
}
|
|
@@ -12,8 +12,8 @@ using UnityEngine.Rendering;
|
|
|
12
12
|
namespace UnityCli
|
|
13
13
|
{
|
|
14
14
|
/// <summary>
|
|
15
|
-
///
|
|
16
|
-
///
|
|
15
|
+
/// rendering、lighting、volume 组 IUnityCliTool 共享 helper:渲染管线摘要、QualitySettings、
|
|
16
|
+
/// Volume 反射、渲染统计、颜色解析、天空盒环境设置。仅供这些 graphics 域自包含工具复用。
|
|
17
17
|
/// </summary>
|
|
18
18
|
public static class GraphicsToolSupport
|
|
19
19
|
{
|
|
@@ -111,7 +111,7 @@ namespace UnityCli
|
|
|
111
111
|
{
|
|
112
112
|
if (string.Equals(QualitySettings.names[i], rawLevel, StringComparison.OrdinalIgnoreCase)) return i;
|
|
113
113
|
}
|
|
114
|
-
throw new UnityCliBridge.BridgeCommandException("E_QUALITY_LEVEL_INVALID", "Quality level is invalid: " + rawLevel, "Run tools run
|
|
114
|
+
throw new UnityCliBridge.BridgeCommandException("E_QUALITY_LEVEL_INVALID", "Quality level is invalid: " + rawLevel, "Run tools run rendering.quality --input '{}' to inspect available quality level names and indexes.");
|
|
115
115
|
}
|
|
116
116
|
|
|
117
117
|
/// <summary>构造渲染管线摘要 DTO。</summary>
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
#if UNITY_EDITOR
|
|
2
|
+
using System.Collections.Generic;
|
|
3
|
+
using System.Reflection;
|
|
4
|
+
using UnityEditor;
|
|
5
|
+
using UnityEngine;
|
|
6
|
+
using UnityEngine.Rendering;
|
|
7
|
+
|
|
8
|
+
namespace UnityCli
|
|
9
|
+
{
|
|
10
|
+
/// <summary>rendering.pipeline.info — 读取渲染管线摘要与 QualitySettings(只读)。</summary>
|
|
11
|
+
public class RenderingPipelineInfoTool : IUnityCliTool<RenderingPipelineInfoTool.Request, RenderingPipelineInfoTool.Result>
|
|
12
|
+
{
|
|
13
|
+
public sealed class Request { }
|
|
14
|
+
public sealed class Result { public GraphicsSummary Graphics { get; set; } public QualitySettingsInfo QualitySettings { get; set; } }
|
|
15
|
+
public ToolDescriptor Describe() => new() { Name = "rendering.pipeline.info", Summary = "Read active/default render pipeline identity and current quality settings.", Description = "Read-only in Edit and Play mode. Returns the active/default render pipeline identity plus current QualitySettings; use rendering.pipeline.settings for default pipeline writes and rendering.quality for quality writes.", Group = "rendering",DestructiveHint = false, Target = "editor", PlayModeSupport = "supported", DefaultTimeoutMs = 30000, MaxTimeoutMs = 600000, Examples = new[] { new ToolExample { Description = "Read pipeline info", Input = new Request { } } } };
|
|
16
|
+
public System.Threading.Tasks.ValueTask<Result> ExecuteAsync(Request r, UnityCliProjectToolContext ctx, System.Threading.CancellationToken ct = default) => new System.Threading.Tasks.ValueTask<Result>(new Result { Graphics = GraphicsToolSupport.BuildGraphicsSummary(), QualitySettings = GraphicsToolSupport.BuildQualitySettings() });
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
#endif
|
package/unitypkg/Editor/Tools/{graphics/pipeline-settings.cs → rendering/pipeline/settings.cs}
RENAMED
|
@@ -8,12 +8,12 @@ using UnityEngine.Rendering;
|
|
|
8
8
|
|
|
9
9
|
namespace UnityCli
|
|
10
10
|
{
|
|
11
|
-
/// <summary>
|
|
12
|
-
public class
|
|
11
|
+
/// <summary>rendering.pipeline.settings — 设置 GraphicsSettings.defaultRenderPipeline。</summary>
|
|
12
|
+
public class RenderingPipelineSettingsTool : IUnityCliTool<RenderingPipelineSettingsTool.Request, RenderingPipelineSettingsTool.Result>
|
|
13
13
|
{
|
|
14
14
|
public sealed class Request { public string RenderPipeline { get; set; } }
|
|
15
15
|
public sealed class Result { public GraphicsSummary Graphics { get; set; } public List<GraphicsPlannedEffect> PlannedEffects { get; set; } }
|
|
16
|
-
public ToolDescriptor Describe() => new() { Name = "
|
|
16
|
+
public ToolDescriptor Describe() => new() { Name = "rendering.pipeline.settings", Summary = "Read or set the project's default render pipeline asset.", Description = "Dedicated GraphicsSettings.defaultRenderPipeline reader/writer for Edit and Play mode. Omit renderPipeline for a pure read; pass one imported Assets/*.asset RenderPipelineAsset, or built-in/null to reset. Success re-resolves the asset by path and GUID before returning the fresh pipeline summary; QualitySettings belong to rendering.quality.", Group = "rendering",DestructiveHint = true, SideEffects = new[] { "settings-write", "asset-import", "session-affecting" }, Target = "editor", PlayModeSupport = "session-affecting", DefaultTimeoutMs = 30000, MaxTimeoutMs = 600000, Examples = new[] { new ToolExample { Description = "Set URP pipeline", Input = new Request { RenderPipeline = "Assets/Settings/URP.asset" } } } };
|
|
17
17
|
public System.Threading.Tasks.ValueTask<Result> ExecuteAsync(Request r, UnityCliProjectToolContext ctx, System.Threading.CancellationToken ct = default)
|
|
18
18
|
{
|
|
19
19
|
var effects = new List<GraphicsPlannedEffect>();
|
|
@@ -38,7 +38,7 @@ namespace UnityCli
|
|
|
38
38
|
if ((resetToBuiltIn && observedPipeline != null) || (!resetToBuiltIn && (reloadedPipeline == null || observedPipeline != reloadedPipeline)))
|
|
39
39
|
throw new UnityCliBridge.BridgeCommandException("E_RENDER_PIPELINE_STATE_MISMATCH", "GraphicsSettings.defaultRenderPipeline did not match the requested asset after path/GUID reload.", "Check Unity Console diagnostics and retry after the editor is idle.");
|
|
40
40
|
|
|
41
|
-
effects.Add(new GraphicsPlannedEffect { Type = "
|
|
41
|
+
effects.Add(new GraphicsPlannedEffect { Type = "rendering.pipeline.settings", Property = "renderPipeline", Value = resetToBuiltIn ? "built-in" : pipelinePath });
|
|
42
42
|
return new System.Threading.Tasks.ValueTask<Result>(new Result { Graphics = GraphicsToolSupport.BuildGraphicsSummary(), PlannedEffects = effects });
|
|
43
43
|
}
|
|
44
44
|
}
|