Skill v1.0.1
currentAutomated scan100/100+6 new
version: "1.0.1" name: unity description: "Automate Unity editor and runtime workflows with C#, Addressables, render pipelines, and batch builds." category: game-engines risk: safe source: self source_type: self date_added: "2026-08-26" tags: ["unity", "csharp", "editor-scripting", "urp", "addressables", "batchmode", "headless"] tools: ["claude", "cursor", "gemini", "codex"]
Unity Engine C# Editor & Runtime AI Skill Guide (Claude)
Overview & Engine Architecture
Unity 6000.x / 2022 LTS+ combines Scenes, Prefabs, ScriptableObjects, URP/HDRP/Built-in RP, and Editor-only automation via -batchmode -quit -executeMethod. Claude acts as a Principal Unity Engineer: CI builds, Addressables, deterministic player settings, and Editor/runtime assembly separation.
┌─────────────────────────────────────────────────────────────┐│ Editor (UnityEditor) → -executeMethod / BuildPipeline ││ Player (runtime) → Mono / IL2CPP ││ CI: one process per buildTarget; -activeBuildProfile │└─────────────────────────────────────────────────────────────┘
Version pin: Unity Editor version in ProjectSettings/ProjectVersion.txt — CI must use the same Hub editor (e.g. 6000.0.xf1). Command-line reference.
When to use / when not to
Use when: automated builds, asset validation, playmode tests, Addressables content builds, batch import settings.
Do not use when: Unreal-specific Nanite workflows; server-side Unity without licensing review for headless batch (Unity licensing applies to build machines).
Operational Capabilities & Agent Directives
- Editor isolation:
#if UNITY_EDITOR,Assets/**/Editor/, Editor asmdefs — never referenceUnityEditorin runtime. - CI entry points:
public static void X()only;EditorApplication.Exit(code)on failure; no modal dialogs in batchmode. - One target per invocation: pass
-buildTarget StandaloneWindows64or-activeBuildProfile "Assets/.../Windows.asset"— multi-target requires separate processes. - Deterministic builds: pin graphics tiers, disable random
Application.targetFrameRateside effects in build scripts; useBuildOptions.StrictModewhere available; logApplication.unityVersion. - Color/URP: document active RP asset; linear color space + URP asset must match CI player settings or lighting differs from Editor.
- Logs: always
-logFilepath; parse forScripts have compiler errorsbefore blaming runtime.
Production C#: CI build + exit code
Assets/Editor/CiBuild.cs:
#if UNITY_EDITORusing System.IO;using UnityEditor;using UnityEditor.Build.Reporting;using UnityEngine;public static class CiBuild{public static void BuildWindowsCI(){var ok = BuildInternal(BuildTarget.StandaloneWindows64, "Builds/Win/Game.exe");EditorApplication.Exit(ok ? 0 : 1);}static bool BuildInternal(BuildTarget target, string location){Directory.CreateDirectory(Path.GetDirectoryName(location)!);var report = BuildPipeline.BuildPlayer(new BuildPlayerOptions{scenes = EditorBuildSettingsScene.GetActiveSceneList(EditorBuildSettings.scenes),locationPathName = location,target = target,options = BuildOptions.CompressWithLz4HC});Debug.Log($"Build {report.summary.result} size={report.summary.totalSize}");return report.summary.result == BuildResult.Succeeded;}}#endif
& "C:\Program Files\Unity\Hub\Editor\6000.0.42f1\Editor\Unity.exe" `-batchmode -nographics -quit `-projectPath "$PWD" `-buildTarget StandaloneWindows64 `-executeMethod CiBuild.BuildWindowsCI `-logFile "$PWD\Logs\ci-build.log"
Addressables / content pipeline (batch)
Use AddressableAssetSettings.BuildPlayerContent() from an Editor static method after -executeMethod imports complete. Fail CI if catalog hash changes without intentional bump (store catalog.json hash artifact).
Failure taxonomy
| Symptom | Cause | Fix | |
|---|---|---|---|
| Hang after open | Modal dialog / missing -quit | -batchmode -quit; guard DisplayDialog | |
| Wrong platform shaders | Missing -buildTarget / profile | Set -activeBuildProfile | |
UnityEditor in player | Editor script in runtime asmdef | Editor folder + asmdef platforms | |
| Non-deterministic lighting | Different RP or color space | Serialize Quality/Graphics settings | |
| License / activation | Batch on fresh VM | Unity license activation docs for CI |
Reddit/forum pattern: parallel Unity instances on same project path fail — one lock per -projectPath.
Agent Operational Directive
MANDATORY: Static-executeMethodin Editor assembly; explicit exit codes;-logFile; pin Editor version; separate CI job per build target.