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.
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…
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…
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…
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…
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…
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…
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…
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…
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…
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;…
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…
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…
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…
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…
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;…
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…
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)…
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…
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…
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…
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…
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…
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,…
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…