/camera
Control Unity Scene View and Game cameras. 控制 Unity Scene View 与游戏相机。
$ npx -y skills add Besty0728/Unity-Skills --skill camera --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/camera
Context preview
The summary Claude sees to decide when to auto-load this skill.
Control Unity Scene View and Game cameras. 控制 Unity Scene View 与游戏相机。
SKILL.md
camera.SKILL.mdname: unity-camera
description: Control Unity Scene View and Game cameras. 控制 Unity Scene View 与游戏相机。
Triggers
- Framing the Scene View
- Creating or adjusting cameras
- Tweaking FOV or clipping planes
- 取景 Scene View、创建或调整相机、修改 FOV 或裁剪面
Camera Skills
Control the Scene View camera and Game Cameras (creation, transform, properties, screenshot, culling, orthographic toggle).
Operating Mode
- **Approval** (default): mutating skills (`camera_set_transform`, `camera_create`, `camera_set_properties`, `camera_set_culling_mask`, `camera_screenshot`, `camera_sceneview_screenshot`, `camera_set_orthographic`, `camera_align_view_to_object`, `camera_look_at`) need user grant; grant triggers a single server-side execution that returns the result.
- **Auto / Bypass**: those skills execute directly.
- Query skills (`camera_get_info`, `camera_get_properties`, `camera_list`) are `SkillMode.SemiAuto` — they run in all three modes without grant.
- This module contains **no** Delete / PlayMode / Reload / high-risk skills (no NeverInSemi).
Guardrails
**DO NOT** (common hallucinations):
- `camera_move` / `camera_rotate` do not exist → use `camera_set_transform` (Scene View) or `gameobject_set_transform` (Game Camera)
- `camera_set_fov` does not exist → use `camera_set_properties` with `fieldOfView` parameter
- `camera_*` skills control **two different cameras**: `camera_set_transform`/`camera_look_at`/`camera_align_view_to_object` control the **Scene View camera**; `camera_create`/`camera_set_properties`/`camera_screenshot` control **Game Cameras**
- `camera_delete` does not exist → use `gameobject_delete` on the camera GameObject
**Routing**:
- For Cinemachine virtual cameras → use `cinemachine` module
- For Game Camera component properties → `camera_set_properties` / `camera_get_properties` (this module)
- For screenshots → three options: `scene_screenshot` (scene module) = the **Game View** final composite (all cameras + UI; Play mode = live runtime frame); `camera_screenshot` (this module) = a **single Game Camera** off-screen render; `camera_sceneview_screenshot` (this module) = the **editor Scene View** (developer viewport, incl. grid/gizmos)
Skills
`camera_align_view_to_object`
Align Scene View camera to look at an object. **Parameters:**
- `name` (string, optional): Target GameObject name.
- `instanceId` (int, optional): Target GameObject instance ID.
- `path` (string, optional): Target GameObject hierarchy path.
`camera_get_info`
Get Scene View camera position and rotation. **Parameters:** None.
`camera_set_transform`
Set Scene View camera position/rotation manually. **Parameters:**
- `posX`, `posY`, `posZ` (float): Position.
- `rotX`, `rotY`, `rotZ` (float): Rotation (Euler).
- `size` (float, optional): Orthographic size or pivot distance (default 5).
- `instant` (bool, optional): Move instantly (default true).
`camera_look_at`
Focus Scene View camera on a world-space point. **Parameters:**
- `x`, `y`, `z` (float): Target point.
- Does not support `targetName` or GameObject lookup. For object focus, use `camera_align_view_to_object`.
`camera_create`
Create a new Game Camera.
| Parameter | Type | Required | Default | Description | |-----------|------|----------|---------|-------------| | name | string | No | "New Camera" | Name of the new camera GameObject | | x | float | No | 0 | Position X | | y | float | No | 1 | Position Y | | z | float | No | -10 | Position Z | | addAudioListener | bool | No | false | Also attach an `AudioListener` component |
**Returns:** `{ success, name, instanceId }`
`camera_get_properties`
Get Game Camera properties (supports name/instanceId/path).
| Parameter | Type | Required | Default | Description | |-----------|------|----------|---------|-------------| | name | string | No | null | Name of the camera GameObject | | instanceId | int | No | 0 | Instance ID of the camera GameObject | | path | string | No | null | Hierarchy path of the camera GameObject |
**Returns:** `{ success, name, fieldOfView, nearClipPlane, farClipPlane, orthographic, orthographicSize, depth, cullingMask, clearFlags, backgroundColor, rect }`
`camera_set_properties`
Set Game Camera properties (FOV, clip planes, clear flags, background color, depth).
| Parameter | Type | Required | Default | Description | |-----------|------|----------|---------|-------------| | name | string | No | null | Name of the camera GameObject | | instanceId | int | No | 0 | Instance ID of the camera GameObject | | path | string | No | null | Hierarchy path of the camera GameObject | | fieldOfView | float? | No | null | Camera field of view | | nearClipPlane | float? | No | null | Near clipping plane distance | | farClipPlane | float? | No | null | Far clipping plane distance | | depth | float? | No | null | Camera rendering depth | | clearFlags | string | No | null | Clear flags (e.g. Skybox, SolidColor, Depth, Nothing) | | bgR | float? | No | null | Background color red component | | bgG | float? | No | null | Background color green component | | bgB | float? | No | null | Background color blue component |
**Returns:** `{ success, name }`
`camera_set_culling_mask`
Set Game Camera culling mask by layer names (comma-separated).
| Parameter | Type | Required | Default | Description | |-----------|------|----------|---------|-------------| | layerNames | string | Yes | - | Comma-separated layer names | | name | string | No | null | Name of the camera GameObject | | instanceId | int | No | 0 | Instance ID of the camera GameObject | | path | string | No | null | Hierarchy path of the camera GameObject |
**Returns:** `{ success, cullingMask }`
`camera_screenshot`
Capture a screenshot from a Game Camera to file.
| Parameter | Type | Required | Default | Description | |-----------|------|----------|---------|-------------| | savePath | string | No | "Assets/screenshot.png" | File path to save the screenshot | | width | int | No | 1920 | Screenshot wi
Read more
name: unity-camera description: Control Unity Scene View and Game cameras. 控制 Unity Scene View 与游戏相机。
Triggers
- Framing the Scene View
- Creating or adjusting cameras
- Tweaking FOV or clipping planes
- 取景 Scene View、创建或调整相机、修改 FOV 或裁剪面
Camera Skills
Control the Scene View camera and Game Cameras (creation, transform, properties, screenshot, culling, orthographic toggle).
Operating Mode
- **Approval** (default): mutating skills (`camera_set_transform`, `camera_create`, `camera_set_properties`, `camera_set_culling_mask`, `camera_screenshot`, `camera_sceneview_screenshot`, `camera_set_orthographic`, `camera_align_view_to_object`, `camera_look_at`) need user grant; grant triggers a single server-side execution that returns the result.
- **Auto / Bypass**: those skills execute directly.
- Query skills (`camera_get_info`, `camera_get_properties`, `camera_list`) are `SkillMode.SemiAuto` — they run in all three modes without grant.
- This module contains **no** Delete / PlayMode / Reload / high-risk skills (no NeverInSemi).
Guardrails
**DO NOT** (common hallucinations):
- `camera_move` / `camera_rotate` do not exist → use `camera_set_transform` (Scene View) or `gameobject_set_transform` (Game Camera)
- `camera_set_fov` does not exist → use `camera_set_properties` with `fieldOfView` parameter
- `camera_*` skills control **two different cameras**: `camera_set_transform`/`camera_look_at`/`camera_align_view_to_object` control the **Scene View camera**; `camera_create`/`camera_set_properties`/`camera_screenshot` control **Game Cameras**
- `camera_delete` does not exist → use `gameobject_delete` on the camera GameObject
**Routing**:
- For Cinemachine virtual cameras → use `cinemachine` module
- For Game Camera component properties → `camera_set_properties` / `camera_get_properties` (this module)
- For screenshots → three options: `scene_screenshot` (scene module) = the **Game View** final composite (all cameras + UI; Play mode = live runtime frame); `camera_screenshot` (this module) = a **single Game Camera** off-screen render; `camera_sceneview_screenshot` (this module) = the **editor Scene View** (developer viewport, incl. grid/gizmos)
Skills
`camera_align_view_to_object`
Align Scene View camera to look at an object. **Parameters:**
- `name` (string, optional): Target GameObject name.
- `instanceId` (int, optional): Target GameObject instance ID.
- `path` (string, optional): Target GameObject hierarchy path.
`camera_get_info`
Get Scene View camera position and rotation. **Parameters:** None.
`camera_set_transform`
Set Scene View camera position/rotation manually. **Parameters:**
- `posX`, `posY`, `posZ` (float): Position.
- `rotX`, `rotY`, `rotZ` (float): Rotation (Euler).
- `size` (float, optional): Orthographic size or pivot distance (default 5).
- `instant` (bool, optional): Move instantly (default true).
`camera_look_at`
Focus Scene View camera on a world-space point. **Parameters:**
- `x`, `y`, `z` (float): Target point.
- Does not support `targetName` or GameObject lookup. For object focus, use `camera_align_view_to_object`.
`camera_create`
Create a new Game Camera.
| Parameter | Type | Required | Default | Description | |-----------|------|----------|---------|-------------| | name | string | No | "New Camera" | Name of the new camera GameObject | | x | float | No | 0 | Position X | | y | float | No | 1 | Position Y | | z | float | No | -10 | Position Z | | addAudioListener | bool | No | false | Also attach an `AudioListener` component |
**Returns:** `{ success, name, instanceId }`
`camera_get_properties`
Get Game Camera properties (supports name/instanceId/path).
| Parameter | Type | Required | Default | Description | |-----------|------|----------|---------|-------------| | name | string | No | null | Name of the camera GameObject | | instanceId | int | No | 0 | Instance ID of the camera GameObject | | path | string | No | null | Hierarchy path of the camera GameObject |
**Returns:** `{ success, name, fieldOfView, nearClipPlane, farClipPlane, orthographic, orthographicSize, depth, cullingMask, clearFlags, backgroundColor, rect }`
`camera_set_properties`
Set Game Camera properties (FOV, clip planes, clear flags, background color, depth).
| Parameter | Type | Required | Default | Description | |-----------|------|----------|---------|-------------| | name | string | No | null | Name of the camera GameObject | | instanceId | int | No | 0 | Instance ID of the camera GameObject | | path | string | No | null | Hierarchy path of the camera GameObject | | fieldOfView | float? | No | null | Camera field of view | | nearClipPlane | float? | No | null | Near clipping plane distance | | farClipPlane | float? | No | null | Far clipping plane distance | | depth | float? | No | null | Camera rendering depth | | clearFlags | string | No | null | Clear flags (e.g. Skybox, SolidColor, Depth, Nothing) | | bgR | float? | No | null | Background color red component | | bgG | float? | No | null | Background color green component | | bgB | float? | No | null | Background color blue component |
**Returns:** `{ success, name }`
`camera_set_culling_mask`
Set Game Camera culling mask by layer names (comma-separated).
| Parameter | Type | Required | Default | Description | |-----------|------|----------|---------|-------------| | layerNames | string | Yes | - | Comma-separated layer names | | name | string | No | null | Name of the camera GameObject | | instanceId | int | No | 0 | Instance ID of the camera GameObject | | path | string | No | null | Hierarchy path of the camera GameObject |
**Returns:** `{ success, cullingMask }`
`camera_screenshot`
Capture a screenshot from a Game Camera to file.
| Parameter | Type | Required | Default | Description | |-----------|------|----------|---------|-------------| | savePath | string | No | "Assets/screenshot.png" | File path to save the screenshot | | width | int | No | 1920 | Screenshot wi
REST API-based AI-driven Unity Editor Automation Engine Let AI control Unity scenes directly through Skills 🎉 We are now indexed by DeepWiki! Got questions? Check out the AI-generated docs → The current official maintenance baseline is Unity 2022.3+.
Other skills on unity-skills.
- /addressables-design
Source-anchored design rules for Unity Addressables 1.22.3/2.9.1. 为 Unity Addressables 1.22.3/2.9.1 提供源码锚定的设计规则。
Open skill - /adr
Record Unity architecture decisions (ADR) with rationale. 记录 Unity 架构决策(ADR)与理由。
Open skill - /animator
Edit Unity Animator Controllers and drive runtime parameters. 编辑 Unity Animator Controller 并驱动运行时参数。
Open skill - /architecture
Advise on Unity gameplay and system architecture. 为 Unity 游戏与系统架构提供建议。
Open skill - /asmdef
Advise on Unity assembly definitions (asmdef). 为 Unity 程序集定义(asmdef)提供建议。
Open skill - /asset
Manage Unity AssetDatabase operations. 管理 Unity AssetDatabase 操作。
Open skill

