Updates

Progress, a slice at a time.

Every slice that lands is written up in the plan with what it does, how it was checked, and what's next. These are those write-ups, newest first.

Phase 6 · Slice 22 UI Toolkit stage 2 (binding and collections) Unity.Properties: PropertyPath (names, indices, keys; combine, append, pop, sub-paths), PropertyContainer get/set by the property bag rules (public and [SerializeField] fields, [CreateProperty] members; a dictionary key… Phase 6 · Slice 21 UI Toolkit (stage 1 of 3, for UnityChess) UnityEngine.UIElements in the core module: VisualElement (hierarchy and content containers, classes, names, Q/Query and UQueryBuilder, enabled state, pseudo-states, schedule, layout, worldBound, contentRect, coordinate… Phase 6 Corpus run after the UI Toolkit slices All 23 projects play as before (no regressions); 22 compile. What's left, by cause: Project-side (Unity shows the same): Tower-Defense-Game's two prefab variants are of store prefabs that… Phase 4 · Slice 21 The editor: grid and handles behind objects, box selection The Scene view's grid and handles are drawn on the GPU against the scene's depth, not painted over the image: objects in front hide the grid, and the… Phase 4 · Slice 20 The editor: placed prefabs saved as linked instances A prefab placed in a Unity scene (dragged from the Project pane or double-clicked) is saved as an instance of it, as Unity would: a PrefabInstance with the… Phase 4 · Slice 19 The editor: 2D and orthographic views, multi-selection, the Console The Scene view has Unity's 2D mode (the toolbar's 2D: orthographic, looking along +Z, dragging pans, the grid on the XY plane; off, the 3D view comes back… Phase 4 · Slice 18 The editor: the Project pane, prefabs into the scene A Project pane lists the open Unity project's assets by folder, with each one's kind and a search; it rescans on demand. Assets drag out of it: a… Phase 4 · Slice 17 The editor: duplicate, copy and paste; prefabs and sub-assets Duplicate (Ctrl+D, Edit and Hierarchy menus) puts a copy beside the selection, named as Unity names it ("Cube (1)", then "(2)"), and selects it. Copy and Cut put… Phase 4 · Slice 16 The editor: project assets, agents hear edits, agent marks seen Project assets in the inspector: a Unity scene's asset fields (materials, textures, sprites, clips, animation clips, controllers, physics materials, fonts, text assets, meshes) pick from the project's files… Phase 4 · Slice 15 The editor: asset fields, editing while playing The inspector edits fields by what they are (the engine's types; for fields it doesn't describe, their names and values): colors with a color picker (Unity's gamma values;… Phase 4 · Slice 14 The editor: hot reload, edit-mode lines, agent presence, references Phase 4's milestone in the editor: edited scripts swap in while editing as well as while playing. The editor watches the scripts' sources (loaded DLLs, an open project's… Phase 4 · Slice 13 The editor GUI (stage 3 of 3): Unity projects, script fields, the live scene, agents in the session Unity projects: a project folder (its first build scene) or a .unity file opens from the command line, File > Open Scene or File > Open Unity Project… Phase 4 · Slice 12 The editor GUI (stage 2 of 3): scene view, handles, play mode The editor starts the script host (--managed-dir, --scripts; in the repository it finds the .NET build and loads the sample scripts) and keeps the edited scene loaded in… Phase 4 · Slice 11 The editor GUI (stage 1 of 3) the GUI was skipped when Phase 4 moved on to Phase 5; it starts here. tassix_editor_gui (apps/editor): egui 0.37 on our own winit loop and wgpu device through… Phase 6 · Slice 20 The Skybox component A camera's Skybox component draws its material's sky behind that camera (render texture cameras too): the renderer takes per-view sky overrides for the sky pass and its uniforms;… Phase 6 · Slice 19 Serialization callbacks and corpus warnings ISerializationCallbackReceiver runs where Unity runs it (serialization_callbacks, 6000.3): after loaded fields (nested first), around Instantiate, in JsonUtility. Odin's SerializedMonoBehaviour fields now load through… Phase 6 · Slice 18 CompositeCollider2D Colliders marked usedByComposite (compositeOperation Merge) hand their outlines to the CompositeCollider2D on their Rigidbody2D and stop colliding themselves. The composite unions them with i_overlay (MIT/Apache-2.0)… Phase 6 · Slice 17 Immediate drawing into render textures GL, Graphics.DrawTexture and DrawMeshNow draw into RenderTexture.active (or SetRenderTarget's texture) when one is set: their triangles go to the native side as each call ends and replay in… Phase 6 · Slice 16 Render textures Render textures are drawn into: cameras with a targetTexture render before the screen's (each on its own, with the texture's aspect and the background's alpha), Graphics.Blit (its own… Phase 6 · Slice 15 The grown corpus All nine new projects compile and load (23 in the corpus; 21 compile, the same two as before don't). Closed on the way: Unity's second UnityEngine.UI.dll GUID; Photoshop… Phase 6 · Slice 14 Sprite sheets, UI animation, max texture size SwampAttack's props floated in the sky: sprite sheets (Sprite Mode Multiple) weren't imported at all, so every sprite of a sheet was the whole texture. sprite_sheets (6000.3): a… Phase 6 · Slice 13 Corpus: binary files, load order, IMGUI, tilemaps Unity's binary serialization (crates/unity_yaml/src/binary.rs): scenes, prefabs, assets and project settings saved as "Force Binary" (or "Mixed", Unity's default before 2019), format versions 9 to 22, read through their… Phase 6 · Slice 12 WheelCollider wheel_colliders (6000.3, the Vehicles module added to the conformance project): a wheel's defaults, sprung masses, and a 1000 kg car settling, accelerating on rear-wheel torque, braking and turning,… Phase 6 · Slice 11 TextMesh text_meshes (recorded in 6000.3): TextMesh's defaults and the bounds its text gives its renderer. What Unity measures: the text's box, not its glyphs: each character's rounded advance at…