Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,33 @@ public partial class Tool_ParticleSystem
IdempotentHint = true,
OpenWorldHint = false
)]
[McpPluginSkillDescription("Inspect a `UnityEngine.ParticleSystem` component on a GameObject — runtime state " +
"(playing/paused/emitting/stopped, particle count, time) plus opt-in serialized data for any of the " +
"~24 particle modules (Main, Emission, Shape, Velocity, Noise, Collision, Trails, Renderer, etc.). " +
"Pair with '" + ParticleSystemModifyToolId + "' to write changes back.")]
[McpPluginSkillBody("Inspect a `UnityEngine.ParticleSystem` component on a GameObject. Returns runtime state " +
"(`isPlaying`, `isPaused`, `isEmitting`, `isStopped`, `particleCount`, `time`) plus opt-in serialized data " +
"for any of the particle modules. Use '" + ParticleSystemModifyToolId + "' afterwards to write changes back.\n\n" +
"## Inputs\n\n" +
"- `gameObjectRef` — the GameObject hosting the `ParticleSystem` component (required).\n" +
"- `componentRef` — optional. Resolves a specific `ParticleSystem` when the GameObject has more than " +
"one; otherwise the first `ParticleSystem` found is used.\n" +
"- `includeMain`, `includeEmission`, `includeShape`, `includeVelocityOverLifetime`, " +
"`includeLimitVelocityOverLifetime`, `includeInheritVelocity`, `includeLifetimeByEmitterSpeed`, " +
"`includeForceOverLifetime`, `includeColorOverLifetime`, `includeColorBySpeed`, " +
"`includeSizeOverLifetime`, `includeSizeBySpeed`, `includeRotationOverLifetime`, " +
"`includeRotationBySpeed`, `includeExternalForces`, `includeNoise`, `includeCollision`, " +
"`includeTrigger`, `includeSubEmitters`, `includeTextureSheetAnimation`, `includeLights`, " +
"`includeTrails`, `includeCustomData`, `includeRenderer` — per-module toggles. `includeMain` defaults " +
"to `true`; everything else defaults to `false`.\n" +
"- `includeAll` — when `true`, overrides every per-module flag and emits all modules.\n" +
"- `deepSerialization` — when `true`, recurses through nested objects via ReflectorNet; otherwise only " +
"top-level members are serialized (cheaper, smaller payload).\n\n" +
"## Behavior\n\n" +
"Only the modules whose include-flags resolve to `true` are serialized — this keeps responses small " +
"when you only need one or two modules. `includeRenderer` reads the sibling " +
"`UnityEngine.ParticleSystemRenderer` component on the same GameObject and is skipped silently when " +
"no renderer is present. The whole call runs on the Unity main thread.")]
[Description("Get detailed information about a ParticleSystem component on a GameObject. " +
"Returns particle system state and optionally serialized data for each module. " +
"Use the boolean flags to request specific modules. " +
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,28 @@ public partial class Tool_ParticleSystem
IdempotentHint = true,
OpenWorldHint = false
)]
[McpPluginSkillDescription("Modify a `UnityEngine.ParticleSystem` component on a GameObject. Pass " +
"`SerializedMember` payloads only for the modules you want to change; everything else is left alone. " +
"Use '" + ParticleSystemGetToolId + "' first to inspect the current structure.")]
[McpPluginSkillBody("Modify a `UnityEngine.ParticleSystem` component on a GameObject. Pass `SerializedMember` " +
"payloads only for the modules you want to change; omitted modules are left untouched. Use " +
"'" + ParticleSystemGetToolId + "' first to inspect the current structure so the diff is targeted.\n\n" +
"## Inputs\n\n" +
"- `gameObjectRef` — the GameObject hosting the `ParticleSystem` component (required).\n" +
"- `componentRef` — optional. Resolves a specific `ParticleSystem` when the GameObject has more than " +
"one; otherwise the first `ParticleSystem` found is used.\n" +
"- `main`, `emission`, `shape`, `velocityOverLifetime`, `limitVelocityOverLifetime`, " +
"`inheritVelocity`, `lifetimeByEmitterSpeed`, `forceOverLifetime`, `colorOverLifetime`, `colorBySpeed`, " +
"`sizeOverLifetime`, `sizeBySpeed`, `rotationOverLifetime`, `rotationBySpeed`, `externalForces`, " +
"`noise`, `collision`, `trigger`, `subEmitters`, `textureSheetAnimation`, `lights`, `trails`, " +
"`customData`, `renderer` — optional `SerializedMember` payloads per module. Include only the " +
"properties you want to change.\n\n" +
"## Behavior\n\n" +
"Each non-null module is applied via `Reflector.TryModify` and logged with a `[ModuleName]` prefix in " +
"the response's `logs` array. The `renderer` payload targets the sibling " +
"`UnityEngine.ParticleSystemRenderer` component on the same GameObject; if absent, the call logs the " +
"miss instead of throwing. When at least one module was modified, the GameObject and the " +
"`ParticleSystem` are marked dirty so the change persists. The whole call runs on the Unity main thread.")]
[Description("Modify a ParticleSystem component on a GameObject. " +
"Provide the data model with only the modules you want to change. " +
"Use '" + ParticleSystemGetToolId + "' first to inspect the ParticleSystem structure before modifying. " +
Expand Down
2 changes: 1 addition & 1 deletion Unity-Package/Assets/root/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
"unity": "2022.3",
"description": "AI-powered tools for Unity ParticleSystem workflow. Inspect and modify ParticleSystem components via natural language commands—configure emission, shape, velocity curves, color gradients, and all modules without manual inspector navigation. Ideal for rapid prototyping and procedural effects generation. Built on top of the AI Game Developer (Unity-MCP) platform.",
"dependencies": {
"com.ivanmurzak.unity.mcp": "0.72.1",
"com.ivanmurzak.unity.mcp": "0.72.2",
"com.unity.modules.particlesystem": "1.0.0"
},
"scopedRegistries": [
Expand Down
2 changes: 1 addition & 1 deletion Unity-Package/Packages/manifest.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"dependencies": {
"com.ivanmurzak.unity.mcp": "0.72.1",
"com.ivanmurzak.unity.mcp": "0.72.2",
"com.unity.ide.visualstudio": "2.0.26",
"com.unity.test-framework": "1.1.33",
"com.unity.modules.assetbundle": "1.0.0",
Expand Down
Loading