Phase 4 updates

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 .cs files; Watch now replaces its watchers when called again) and polls twice a second ({"editor_scripts"} runs the player's between-frames Poll, and reports a generation that changes with each load); on a change the inspector's types refresh and the edit scene reloads, so a new field shows in about a second.
  • Line and trail renderers own an (empty) mesh from the moment they are added: before, a renderer without one drew its object's MeshFilter mesh in the line's material until its first rebuild, which edit mode (and MCP's preview) never got: the white blob on Wheels' wheels. After an edit-mode load, lines build once, so LineRenderers show in edit mode as in Unity.
  • Agent presence: objects an agent's messages changed (from the change events, components counted for their objects) are marked for 8 s, fading: tinted in the Hierarchy ("Changed by <agent>" on hover) and ringed with the agent's name in the Scene view.
  • The inspector picks scene references: the runtime now gives each field's type and kind (scene object, asset, value), and a scene reference is a list of the objects that fit its type (any object for GameObject and Transform, else those with a matching component, BoxCollider for Collider), written as {"ref": id}. Same-named types (a project's script and a sample's) are offered as "Name, Assembly".
  • Tests: an edited script's new field reaches the inspector in edit mode with its type (in-process runtime, a Coin Dash copy); a reference is picked through the inspector's list; an agent's edit is marked as its work.
  • Not yet: assets (materials, textures, clips) in the inspector beyond JSON; the agent marks haven't been looked at in a window; resource notifications over HTTP; editing the live scene while playing; handles and grid drawn over objects.