Agent SkillsBesty0728/Unity-Skills › unity-light

unity-light

GitHub

提供Unity场景灯光的创建、配置、属性调整及批量管理功能,支持光照贴图与反射探针设置。

SkillsForUnity/unity-skills~/skills/light/SKILL.md Besty0728/Unity-Skills

Trigger Scenarios

添加或调校灯光 布置场景照明 批量开关灯光

Install

npx skills add Besty0728/Unity-Skills --skill unity-light -g -y
More Options

Non-standard path

npx skills add https://github.com/Besty0728/Unity-Skills/tree/main/SkillsForUnity/unity-skills~/skills/light -g -y

Use without installing

npx skills use Besty0728/Unity-Skills@unity-light

指定 Agent (Claude Code)

npx skills add Besty0728/Unity-Skills --skill unity-light -a claude-code -g -y

安装 repo 全部 skill

npx skills add Besty0728/Unity-Skills --all -g -y

预览 repo 内 skill

npx skills add Besty0728/Unity-Skills --list

SKILL.md

Frontmatter
{
    "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 - JSON array of per-item objects (see example below)

Returns: {success, totalItems, successCount, failCount, results: [{success, name}]}

unity_skills.call_skill("light_set_properties_batch", items=[
    {"name": "Light1", "intensity": 2.0, "r": 1, "g": 0.9, "b": 0.8},
    {"instanceId": 12345, "intensity": 1.5, "shadows": "soft"},
    {"name": "Light3", "intensity": 2.0}
])

light_set_enabled

Enable or disable a light.

Parameter Type Required Default Description
name string No* - Light object name
instanceId int No* - Instance ID
path string No* - Hierarchy path
enabled bool No true Enable state

Returns: {success, name, enabled}

light_set_enabled_batch

Enable or disable multiple lights.

Parameter Type Required Default Description
items json string Yes - JSON array of per-item objects (see example below)

Returns: {success, totalItems, successCount, failCount, results: [{success, name, enabled}]}

unity_skills.call_skill("light_set_enabled_batch", items=[
    {"name": "Torch1", "enabled": False},
    {"name": "Torch2", "enabled": False},
    {"name": "Torch3", "enabled": False}
])

light_get_info

Get detailed light information.

Parameter Type Required Description
name string No* Light object name
instanceId int No* Instance ID
path string No* Hierarchy path

Returns: {name, entityId, instanceId, path, lightType, color, intensity, range, spotAngle, shadows, enabled, cullingMask, bounceIntensity}

light_get_properties

Alias of light_get_info — same parameters, same response. It exists because the setter is light_set_properties, so the matching getter name resolves instead of 404-ing.

Parameter Type Required Description
name string No* Light object name
instanceId int No* Instance ID
path string No* Hierarchy path

Returns: identical to light_get_info.

light_find_all

Find all lights in scene.

Parameter Type Required Default Description
lightType string No null Filter by type
limit int No 50 Max results

Returns: {count, lights: [{name, instanceId, path, lightType, intensity, enabled}]}

light_add_probe_group

Add a Light Probe Group to a GameObject. Optional grid layout: gridX/gridY/gridZ (count per axis), spacingX/spacingY/spacingZ (meters between probes).

Parameter Type Required Default Description
name string No null GameObject name
instanceId int No 0 Instance ID
path string No null Hierarchy path
gridX int No 0 Probe count on X axis
gridY int No 0 Probe count on Y axis
gridZ int No 0 Probe count on Z axis
spacingX float No 2 Meters between probes on X
spacingY float No 1.5 Meters between probes on Y
spacingZ float No 2 Meters between probes on Z

Returns: { success, gameObject, probeCount, existed, hasGrid }

light_add_reflection_probe

Create a Reflection Probe at a position.

Parameter Type Required Default Description
probeName string No "ReflectionProbe" Probe name
x, y, z float No 0,1,0 Position
sizeX, sizeY, sizeZ float No 10,10,10 Probe box size
resolution int No 256 Cubemap resolution

Returns: { success, name, instanceId, resolution, size }

light_get_lightmap_settings

Get Lightmap baking settings.

No parameters.

Returns: { success, bakedGI, realtimeGI, lightmapSize, lightmapPadding, isRunning, lightmapCount }


Example: Efficient Lighting Setup

import unity_skills

# BAD: 4 API calls
unity_skills.call_skill("light_set_properties", name="Light1", intensity=2.0)
unity_skills.call_skill("light_set_properties", name="Light2", intensity=2.0)
unity_skills.call_skill("light_set_properties", name="Light3", intensity=2.0)
unity_skills.call_skill("light_set_properties", name="Light4", intensity=2.0)

# GOOD: 1 API call
unity_skills.call_skill("light_set_properties_batch", items=[
    {"name": "Light1", "intensity": 2.0},
    {"name": "Light2", "intensity": 2.0},
    {"name": "Light3", "intensity": 2.0},
    {"name": "Light4", "intensity": 2.0}
])

Minimal Example

unity_skills.call_skill("light_create",
    name="Sun", lightType="Directional",
    r=1, g=0.95, b=0.85, intensity=1.2, shadows="soft"
)

Best Practices

  1. Use Directional light for main scene illumination
  2. Point lights for localized sources (lamps, fires)
  3. Spot lights for focused beams (flashlights, stage)
  4. Limit real-time shadows for performance
  5. Area lights require baking (not real-time)
  6. Use intensity > 1 for HDR/bloom effects

Exact Signatures

Exact names, parameters, defaults, and returns are defined by GET /skills/schema or unity_skills.get_skill_schema(), not by this file.

Version History

  • 8c31c5a Current 2026-08-27 12:43

    修复模块文档审计问题,更新addressables相关技能文档,优化协议引用与注释。

  • 5ee8388 2026-08-17 04:11

    精简文档体积,新增引导模式协议及多个模块的防误用建议,更新版本锚点至2.6.0。

  • 25d511e 2026-08-13 09:14

    压缩75个SKILL.md描述至约5191字符,并将路由说明移至Triggers部分

  • e49379b 2026-07-31 06:54

    版本升级至2.4.0

  • ec9f870 2026-07-05 14:40

Same Skill Collection

SkillsForUnity/unity-skills~/skills/addressables-design/SKILL.md
SkillsForUnity/unity-skills~/skills/addressables/SKILL.md
SkillsForUnity/unity-skills~/skills/adr/SKILL.md
SkillsForUnity/unity-skills~/skills/animator/SKILL.md
SkillsForUnity/unity-skills~/skills/behavior/SKILL.md
SkillsForUnity/unity-skills~/skills/blueprints/SKILL.md
SkillsForUnity/unity-skills~/skills/event/SKILL.md
SkillsForUnity/unity-skills~/skills/graphics/SKILL.md
SkillsForUnity/unity-skills~/skills/history/SKILL.md
SkillsForUnity/unity-skills~/skills/manual-component/SKILL.md
SkillsForUnity/unity-skills~/skills/manual-gameobject/SKILL.md
SkillsForUnity/unity-skills~/skills/manual-material/SKILL.md
SkillsForUnity/unity-skills~/skills/manual-scene/SKILL.md
SkillsForUnity/unity-skills~/skills/material/SKILL.md
SkillsForUnity/unity-skills~/skills/netcode-design/SKILL.md
SkillsForUnity/unity-skills~/skills/netcode/SKILL.md
SkillsForUnity/unity-skills~/skills/perception/SKILL.md
SkillsForUnity/unity-skills~/skills/pico-design/SKILL.md
SkillsForUnity/unity-skills~/skills/primetween/SKILL.md
SkillsForUnity/unity-skills~/skills/probuilder/SKILL.md
SkillsForUnity/unity-skills~/skills/profiler/SKILL.md
SkillsForUnity/unity-skills~/skills/project-scout/SKILL.md
SkillsForUnity/unity-skills~/skills/sample/SKILL.md
SkillsForUnity/unity-skills~/skills/shadergraph-design/SKILL.md
SkillsForUnity/unity-skills~/skills/SKILL.md
SkillsForUnity/unity-skills~/skills/smart/SKILL.md
SkillsForUnity/unity-skills~/skills/unity-cli/SKILL.md
SkillsForUnity/unity-skills~/skills/yaml-editing/SKILL.md
SkillsForUnity/unity-skills~/SKILL.md
SkillsForUnity/unity-skills~/skills/architecture/SKILL.md
SkillsForUnity/unity-skills~/skills/asmdef/SKILL.md
SkillsForUnity/unity-skills~/skills/asset/SKILL.md
SkillsForUnity/unity-skills~/skills/async/SKILL.md
SkillsForUnity/unity-skills~/skills/batch/SKILL.md
SkillsForUnity/unity-skills~/skills/bookmark/SKILL.md
SkillsForUnity/unity-skills~/skills/camera/SKILL.md
SkillsForUnity/unity-skills~/skills/cinemachine/SKILL.md
SkillsForUnity/unity-skills~/skills/cleaner/SKILL.md
SkillsForUnity/unity-skills~/skills/component/SKILL.md
SkillsForUnity/unity-skills~/skills/console/SKILL.md
SkillsForUnity/unity-skills~/skills/debug/SKILL.md
SkillsForUnity/unity-skills~/skills/decal/SKILL.md
SkillsForUnity/unity-skills~/skills/dotween-design/SKILL.md
SkillsForUnity/unity-skills~/skills/dotween/SKILL.md
SkillsForUnity/unity-skills~/skills/editor/SKILL.md
SkillsForUnity/unity-skills~/skills/gameobject/SKILL.md
SkillsForUnity/unity-skills~/skills/hybridclr/SKILL.md
SkillsForUnity/unity-skills~/skills/importer/SKILL.md
SkillsForUnity/unity-skills~/skills/inspector/SKILL.md

Metadata

Files
0
Version
61f72e2
Hash
6711b573
Indexed
2026-07-05 14:40

- 위키
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-08-29 22:20
浙ICP备14020137号-1 $방문자$