Phase 4 updates

Phase 4 · Slice 1 ·

Playing Unity projects

  • tassix_unity_yaml: Unity's YAML dialect (document headers with class and file IDs, stripped placeholders, block and flow collections, wrapped quoted and plain scalars, untyped scalars kept as strings). Parses every YAML file of a Unity project and its package cache.
  • Import (Tassix.Runtime/Unity):
    • The GUID index from .meta files; assets loaded by reference: materials (built-in and URP Lit shaders, colors, floats, textures with tiling and offset), textures and sprites with importer settings, audio clips, models, prefab assets.
    • Scenes and prefabs: prefab instances expanded (objects keyed by instance XOR source file ID), overrides applied by property path, removed and added components and objects; hierarchy in SceneRoots/m_Children order.
    • Built-in components by class name, settings mapped from Unity's serialized names (m_Mass, near clip plane, AudioSource's curves...); scripts by GUID or Unity 6's class identifier, fields read Unity's way (0/1 booleans, enums as numbers, hex-encoded primitive arrays, nested classes, references within the file and to assets, FormerlySerializedAs).
    • unity_import: 195 checks against a scene, prefab and material saved by the Unity editor (the same files Tassix reads).
  • Projects: scripts compiled into Assembly-CSharp with the .NET SDK (Editor folders and editor/test asmdefs left out, Unity's player defines, the callback generator), cached by source stamps; ProjectSettings applied (build scenes, layers, input axes, gravity, collision matrices, fixed timestep, product name).
  • Player and MCP: --project and .unity scenes; MCP scene_open takes a Unity project or scene for play. samples/unity/CoinDash (made in the Unity editor) plays through an e2e test.
  • Next: Unity scenes in the editor model (edit mode, scene_edit on imported scenes), FBX meshes and sub-assets by file ID, ScriptableObjects, .asmdef assemblies, then hot reload.