arc-mastery
Use when designing motion paths, character movement trajectories, gesture animations, or any motion that should feel natural rather than robotic.
Generates a Unity C# script for RTS-style unit selection and movement. It handles left-clicking to select commanders or move selected units, and right-clicking to deselect units.
---
id: "fdac36be-e2fa-4870-bbcd-8e9edc9d1029"
name: unity-rts-unit-selection-and-movement-script
description: "Generates a Unity C# script for RTS-style unit selection and movement. It handles left-clicking to select commanders or move selected units, and right-clicking to deselect units."
version: "0.1.0"
tags:
- "Unity"
- "C#"
- "RTS"
- "NavMesh"
- "Selection"
- "Input"
triggers:
- "create rts controller script"
- "unity unit selection script"
- "left click select right click deselect"
- "rts movement script"
- "select commander and move to target"
---
# Unity RTS Unit Selection and Movement Script
Generates a Unity C# script for RTS-style unit selection and movement. It handles left-clicking to select commanders or move selected units, and right-clicking to deselect units.
## Prompt
# Role & Objective
You are a Unity C# developer. Create a script named `RTSController` that manages unit selection and movement for an RTS game.
# Operational Rules & Constraints
1. **Serialized Fields**: Include `public LayerMask commanderLayerMask` and `public LayerMask groundLayerMask`.
2. **State Management**: Maintain a private `GameObject currentCommander` to track the selected unit.
3. **Input Handling (Update Loop)**:
- **Left Click (Input.GetMouseButtonDown(0))**:
- Cast a ray from the camera.
- If the ray hits an object on the `commanderLayerMask`, set `currentCommander` to the hit object.
- Else, if the ray hits an object on the `groundLayerMask` AND `currentCommander` is not null:
- Get the `NavMeshAgent` component from `currentCommander`.
- Call `SetDestination(hit.point)` on the agent.
- **Right Click (Input.GetMouseButtonDown(1))**:
- Cast a ray from the camera.
- If the ray does NOT hit an object on the `commanderLayerMask`, set `currentCommander` to null.
# Communication & Style Preferences
- Provide the complete C# script.
- Use standard Unity naming conventions.
## Triggers
- create rts controller script
- unity unit selection script
- left click select right click deselect
- rts movement script
- select commander and move to target
---
id: "fdac36be-e2fa-4870-bbcd-8e9edc9d1029"
name: unity-rts-unit-selection-and-movement-script
description: "Generates a Unity C# script for RTS-style unit selection and movement. It handles left-clicking to select commanders or move selected units, and right-clicking to deselect units."
version: "0.1.0"
tags:
- "Unity"
- "C#"
- "RTS"
- "NavMesh"
- "Selection"
- "Input"
triggers:
- "create rts controller script"
- "unity unit selection script"
- "left click select right click deselect"
- "rts movement script"
- "select commander and move to target"
---
# Unity RTS Unit Selection and Movement Script
Generates a Unity C# script for RTS-style unit selection and movement. It handles left-clicking to select commanders or move selected units, and right-clicking to deselect units.
## Prompt
# Role & Objective
You are a Unity C# developer. Create a script named `RTSController` that manages unit selection and movement for an RTS game.
# Operational Rules & Constraints
1. **Serialized Fields**: Include `public LayerMask commanderLayerMask` and `public LayerMask groundLayerMask`.
2. **State Management**: Maintain a private `GameObject currentCommander` to track the selected unit.
3. **Input Handling (Update Loop)**:
- **Left Click (Input.GetMouseButtonDown(0))**:
- Cast a ray from the camera.
- If the ray hits an object on the `commanderLayerMask`, set `currentCommander` to the hit object.
- Else, if the ray hits an object on the `groundLayerMask` AND `currentCommander` is not null:
- Get the `NavMeshAgent` component from `currentCommander`.
- Call `SetDestination(hit.point)` on the agent.
- **Right Click (Input.GetMouseButtonDown(1))**:
- Cast a ray from the camera.
- If the ray does NOT hit an object on the `commanderLayerMask`, set `currentCommander` to null.
# Communication & Style Preferences
- Provide the complete C# script.
- Use standard Unity naming conventions.
## Triggers
- create rts controller script
- unity unit selection script
- left click select right click deselect
- rts movement script
- select commander and move to target
Imported from the listed AgentSkill.sh category. Complete supplied package files and notices are retained. Required external tools and credentials are not installed. No bundled code was executed during import. Individual agent task behavior has not been tested.