Implement Unity C# changes with unity-cli as the primary write path. Prefer the smallest write primitive that keeps the change correct, and preserve Unity serialization, UI binding paths, and editor/runtime boundaries.
Use When
- The user intends to change C# behavior in
.csfiles. - The user wants to create or rewrite scripts (single or coordinated multi-file).
- The user asks for a symbol rename, member add/remove, or refactor.
- The user changes project or package settings as part of a code change.
Do Not Use When
- The task is read-only investigation; use
unity-csharp-navigate. - The work targets Editor state inspection (console, profiler, packages); use
unity-editor-tools.
Preferred Flow
- Decide the write shape: symbol edit, full-file write, multi-file write, or settings change.
- Read only the minimum context with
read,get_symbols,find_symbol, orfind_refs. - Preview risky symbol edits with
apply: false. - Apply with
refresh,waitForCompile, andupdateIndexwhen later steps depend on clean diagnostics. - Inspect
changedFiles,changedSymbols, anddiagnostics; fix compilation issues before unrelated follow-up.
unity-cli raw get_symbols --json '{"path":"Assets/Scripts/Player.cs"}'
unity-cli raw rename_symbol --json '{"relative":"Assets/Scripts/Player.cs","namePath":"Player/Jump","newName":"Leap","apply":false}'
unity-cli raw apply_csharp_edits --json '{"files":[{"relative":"Assets/Scripts/IPlayerMover.cs","newText":"public interface IPlayerMover { void Move(); }\n"}],"validate":true,"apply":true,"waitForCompile":true,"updateIndex":true}'
unity-cli raw get_compilation_state --json '{}'
Examples
- "Implement dash cooldown in
PlayerController.csand update the related tests." - "Rename
JumptoLeapacross the player package without breaking serialized field names." - "Create a new editor utility script and change the matching project setting."
- "Refactor an interface, its implementation, and the tests in one coordinated write."
References
- runtime-checklist.md: connection and instance prerequisites.
- file-write-recipes.md: choosing between symbol edits, file writes, and multi-file writes.
- lsp-write-safety.md: preview-first edits,
namePath, and write-result checks. - unity-implementation-guidelines.md: serialized fields, UI bindings, editor code, ScriptableObjects, SettingsProviders.
- settings-write-recipes.md: project and package settings safe-write recipes.