Skip to content
Development
Skill

/light

Create and configure Unity lights

From plugin
unity-skills
1.8k82 skills4 commands
Install
$ npx -y skills add Besty0728/Unity-Skills --skill light --agent claude-code

How 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/light

Context preview

The summary Claude sees to decide when to auto-load this skill.

Create and configure Unity lights

SKILL.md

light.SKILL.md
name: unity-light
description: Create and configure Unity lights

> **Before calling any skill in this module:** if you are about to call a skill with parameters guessed from its name or description, STOP — read this file (or fetch its schema via `GET /skills/recommend?includeSchema=true`) first. If you already have the parameter definitions from recommend/schema, you may proceed straight to dryRun.

Triggers

  • Adding or tuning lights
  • Setting up scene lighting
  • Batch-enabling/disabling lights
  • 添加或调校灯光、布置场景照明、批量开关灯光

Unity Light Skills

> **BATCH-FIRST**: Use `*_batch` skills when operating on 2+ lights.

Operating Mode

  • **Approval** (default): mutating skills (`light_create`, `light_set_properties`, `light_set_properties_batch`, `light_set_enabled`, `light_set_enabled_batch`, `light_add_probe_group`, `light_add_reflection_probe`) need user grant; grant triggers a single server-side execution that returns the result.
  • **Auto / Bypass**: those skills execute directly.
  • Query skills (`light_get_info`, `light_get_properties`, `light_find_all`, `light_get_lightmap_settings`) are `SkillMode.SemiAuto` — they run in all three modes without grant.
  • This module contains **no** Delete / PlayMode / Reload / high-risk skills (no NeverInSemi); to remove a Light, call `gameobject_delete` from the `gameobject` module.

Guardrails

**DO NOT** (common hallucinations):

  • `light_add` does not exist → use `light_create` (creates a new light GameObject)
  • `light_set_color` / `light_set_intensity` do not exist → use `light_set_properties` (sets color, intensity, range, shadows together)
  • `light_delete` does not exist → use `gameobject_delete` on the light's GameObject
  • `light_set_shadow` does not exist → use `light_set_properties` with the `shadows` parameter
  • `shadows` values are the Unity enum members `None` / `Hard` / `Soft`. Input is matched case-insensitively (`"soft"` still works) but responses always echo the capitalised form, so compare against `Soft`, not `soft`, when verifying

**Routing**:

  • For lightmap baking settings → `light_get_lightmap_settings` (this module)
  • For reflection probes → `light_add_reflection_probe` (this module)
  • For light probe groups → `light_add_probe_group` (this module)

> **Object Targeting**: All single-object skills accept `name` (string) and `instanceId` (int, preferred). Provide at least one. `path` (hierarchy path) is also accepted where noted.

Skills Overview

| Single Object | Batch Version | Use Batch When | |---------------|---------------|----------------| | `light_set_properties` | `light_set_properties_batch` | Configuring 2+ lights | | `light_set_enabled` | `light_set_enabled_batch` | Toggling 2+ lights |

**No batch needed**:

  • `light_create` - Create a light
  • `light_get_info` - Get light information (`light_get_properties` is an alias of it)
  • `light_find_all` - Find all lights (returns list)
  • `light_add_probe_group` - Add a Light Probe Group with optional grid layout
  • `light_add_reflection_probe` - Create a Reflection Probe at a position
  • `light_get_lightmap_settings` - Inspect Lightmap baking settings

---

Light Types

| Type | Description | Use Case | |------|-------------|----------| | `Directional` | Parallel rays, no position | Sun, moon | | `Point` | Omnidirectional from a point | Torches, bulbs | | `Spot` | Cone-shaped beam | Flashlights, spotlights | | `Area` | Rectangle/disc (baked only) | Windows, soft lights |

---

Skills

light_create

Create a new light.

| Parameter | Type | Required | Default | Description | |-----------|------|----------|---------|-------------| | `name` | string | No | "New Light" | Light name | | `lightType` | string | No | "Point" | Directional/Point/Spot/Area | | `x`, `y`, `z` | float | No | 0,3,0 | Position | | `r`, `g`, `b` | float | No | 1,1,1 | Color (0-1) | | `intensity` | float | No | 1 | Light intensity | | `range` | float | No | 10 | Range (Point/Spot) | | `spotAngle` | float | No | 30 | Cone angle (Spot only) | | `shadows` | string | No | "Soft" | `None` / `Hard` / `Soft` |

**Returns**: `{success, name, instanceId, lightType, position, color, intensity, shadows}`

light_set_properties

Configure light properties. Every parameter is optional and omitted ones keep their current value.

| Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `name` | string | No* | Light object name | | `instanceId` | int | No* | Instance ID (preferred) | | `path` | string | No* | Hierarchy path | | `r`, `g`, `b` | float | No | Color (0-1); each channel defaults to the light's current value | | `a` | float | No | Colour alpha (0-1) | | `intensity` | float | No | Light intensity | | `range` | float | No | Range (Point/Spot only) | | `spotAngle` | float | No | Cone angle (Spot only) | | `shadows` | string | No | `None` / `Hard` / `Soft` |

**Returns**: `{success, name, applied, skipped, lightType, color, intensity, range, spotAngle, shadows}` — `applied` lists the parameters that took effect, named exactly as you passed them (the colour channels appear individually as `r`, `g`, `b`, `a`, not lumped under `color`), and `skipped` the ones the light type cannot carry (a `range` on a Directional light, a `spotAngle` on anything but a Spot), each with the reason. A parameter in neither list was not supplied.

An unrecognised `shadows` value rejects the **whole call** with `SEMANTIC_INVALID` + `validValues` and applies nothing, so a typo can no longer leave a half-configured light behind.

light_set_properties_batch

Configure multiple lights. Each item accepts: `name`/`instanceId`/`path` (identifier) + `r`, `g`, `b`, `a`, `intensity`, `range`, `shadows` (all optional). A bad `shadows` value fails that item with `SEMANTIC_INVALID` + `validValues` and names the object in `target`; the other items still run. | Parameter | Type | Required | Default | Description | |-----------|------|----------|---------|-------------| | `items` | json string | Yes

Read more
Ships withunity-skills

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+.

Get the whole plugin
Stats
1,761
Stars
164
Forks
Active
Maintenance
C#
Language
MIT
License
1d ago
Last commit
8mo ago
Created

Repo: Besty0728/Unity-Skills

Other skills on unity-skills.