Unity YAML Editing
Load this Skill only after considering Unity/AIBridge APIs. UnityYAML is fragile, and direct text edits are the fallback for unsupported serialized asset operations, deterministic repair work, and rare text-serialized asset authoring that AIBridge/Unity APIs cannot express
Decision Order
- Prefer
aibridgeInspector/SerializedProperty commands for single readable field edits on scene objects, prefab assets, and.assetfiles - Prefer
inspector set_propertiesfor small batched field edits on one target - Prefer
aibridge-prefab-patchfor complex Prefab child/component/property/array/reference edits it supports - Prefer Unity Editor scripts when generating high-level assets that Unity can create more safely than text
- Use direct UnityYAML editing when AIBridge/Unity APIs cannot express the operation, for example:
- Scene
.unitystructure/object creation or unsupported scene edits - New Prefab asset authoring, paired
.metacreation, or Prefab/Variant structures not covered byprefab patch - ScriptableObjectTable, custom ScriptableObject
.asset,.mat,.controller, or other serialized assets requiring unsupported structural changes - Repairing malformed text serialization while preserving existing IDs and references
- Scene
Required Workflow
- Read
references/unity-yaml-reference.mdbefore editing - Inspect a same-project example for every Unity component/class you will create; never write component schemas from memory
- Make a small, reviewable patch; preserve ordering, indentation, document headers, anchors,
m_Script, GUIDs, and local fileIDs unless a new object must be created - For new assets, create or preserve the paired
.metafile and ensure its GUID does not already appear in the project - For new MonoBehaviour/ScriptableObject documents, resolve the script
.metaGUID first and use it inm_Script - For new documents, allocate local fileIDs that do not exist in the same file and update every owning reference consistently
- Validate with Unity import/compile and targeted AIBridge hierarchy/properties inspection when possible
Hard Rules
- Do not use generic YAML formatters or parsers to rewrite UnityYAML files
- Do not change
%YAML,%TAG,--- !u!<classID> &<fileID>headers, class IDs, GUIDs, or fileIDs without a clear reference update plan - Do not invent Unity schema fields. Copy shape from an existing nearby object of the same class/component/script when possible
- Prefer decimal floats in hand edits. Avoid editing Unity-generated hexadecimal float values unless preserving existing text unchanged
- Keep
.metaGUIDs stable. Creating a new asset requires creating/retaining the paired.metafile through Unity when possible - When adding Prefab nodes/components, update all reciprocal references in the same patch: parent
m_Children, childm_Father,GameObject.m_Component, and componentm_GameObject
Reference
references/unity-yaml-reference.md: detailed UnityYAML format, editing patterns, safety checks, and validation checklist