t1k:unity:base:text-config
| Field | Value |
|---|---|
| Module | base |
| Version | 2.2.2 |
| Effort | high |
| Tools | — |
Keywords: configuration, localization, text config, unity
How to invoke
Section titled “How to invoke”/t1k:unity:base:text-configUnity Text Config Editing
Section titled “Unity Text Config Editing”Enables autonomous editing of Unity configuration files as text (JSON/YAML), then refreshing Unity to apply changes without using the GUI.
Decision Table
Section titled “Decision Table”| File | Edit? | Method | Refresh |
|---|---|---|---|
.asmdef | ✅ Safe | JSON text edit | refresh_unity MCP |
manifest.json | ✅ Safe | JSON text edit | Editor restart only |
ProjectSettings/Packages/*/Settings.json | ✅ Safe | JSON text edit | refresh_unity MCP |
ProjectSettings *.asset | ⚠️ Limited | YAML simple values only | refresh_unity MCP |
.prefab | ⚠️ Limited | YAML simple values only | refresh_unity MCP |
.asset (ScriptableObject) | ⚠️ Moderate | YAML simple values only | refresh_unity MCP |
.unity scene | ❌ Never | Use EditorSceneManager API | N/A |
NavMesh.asset | ❌ Never | Regenerate (rebake) | N/A |
LightingData.asset | ❌ Never | Regenerate (rebake) | N/A |
Tier 1 — JSON (Fully Safe)
Section titled “Tier 1 — JSON (Fully Safe)”.asmdef
Section titled “.asmdef”Edit references, platform filters, define constraints.
{ "name": "MyAssembly", "references": ["Unity.Entities", "OtherAssembly"], "includePlatforms": ["Editor"], "autoReferenced": true, "defineConstraints": ["UNITY_INCLUDE_TESTS"]}After edit: call refresh_unity MCP tool.
manifest.json
Section titled “manifest.json”Edit dependencies and overrides sections.
{ "dependencies": { "com.unity.entities": "1.4.5" } }After edit: Editor restart required — refresh_unity does NOT trigger Package Manager reload.
Settings.json
Section titled “Settings.json”Located at ProjectSettings/Packages/<package-name>/Settings.json.
{ "m_Dictionary": [ { "type": "System.String, mscorlib", "key": "m_EnableCodeCoverage", "value": "true" } ]}After edit: call refresh_unity MCP tool.
Tier 2 — YAML (Limited, Risky for References)
Section titled “Tier 2 — YAML (Limited, Risky for References)”Before editing any YAML file, verify it is text format:
- Check header:
%YAML 1.1= text-serialized, safe to attempt - Binary header = do not edit
Safe YAML edits: primitive values only (int, float, string, bool, enum int).
# ProjectSettings/TimeManager.assetTimeManager: Fixed Timestep: 0.02 # safe: simple float m_TimeScale: 1 # safe: simple int# ScriptableObject .assetMonoBehaviour: MaxHealth: 100 # safe: primitive int Speed: 5.5 # safe: primitive float TeamColor: 1 # safe: enum as intAfter any YAML edit: call refresh_unity MCP tool.
Never touch in YAML: fileID, guid, m_Script, any {fileID: ..., guid: ...} reference block.
Tier 3 — Binary (Never Edit)
Section titled “Tier 3 — Binary (Never Edit)”Files: NavMesh.asset, LightingData.asset, any .asset with [PreferBinarySerialization], .fbx, .png.
To modify: regenerate via Editor API (rebake NavMesh, rebake lighting).
Refresh Strategies
Section titled “Refresh Strategies”| Method | When to Use |
|---|---|
refresh_unity MCP tool | After JSON or YAML text edits |
AssetDatabase.ImportAsset(path) | Single-asset surgical refresh (faster) |
AssetDatabase.ForceReserializeAssets(paths) | After Asset Serialization Mode change |
| Editor restart | Only for manifest.json — Package Manager requires restart |
Preferred Alternatives to YAML Editing
Section titled “Preferred Alternatives to YAML Editing”| Task | Use Instead |
|---|---|
| Modify prefab components | PrefabUtility.LoadPrefabContents() + C# + SaveAsPrefabAsset() |
| Modify scene objects | EditorSceneManager API |
| Modify ProjectSettings | SerializedObject API (load asset, find property, apply) |
| Modify ScriptableObject | AssetDatabase.LoadAssetAtPath<T>() + SerializedObject |
→ See references/gotchas-guide.md for critical failure modes
Reference Files
Section titled “Reference Files”| File | Content |
|---|---|
references/gotchas-guide.md | FileID fragility, manifest refresh failure, binary detection, scene editing danger |