Graphic,MaskableGraphic,ImageandRawImageinUnityEngine.UI, withVertexHelper,BaseMeshEffect,Shadow,Outline,CanvasUpdateRegistryandGraphicRegistry.- Dirty layouts rebuild first when the canvases update, then dirty graphics regenerate their meshes, as in Unity.
- Image draws simple (optionally keeping the sprite's aspect), sliced (with or without the center), tiled, and filled horizontally, vertically and radially (90, 180, 360). It's also a layout element with the sprite's preferred size.
- CoreModule gained
UIVertex,Sprites.DataUtility, and vertex colors onMesh(kept managed; the mesh renderer doesn't draw them yet). - A new
ui_graphicsscenario recorded in Unity checks the generated meshes vertex by vertex (positions, UVs, colors), preferred sizes and textures. It matches exactly. 31 scenarios pass. - The renderer has a UI pass. Canvases send their meshes after they update, in hierarchy order and batched by texture.
- World-space canvases draw with each camera, depth tested against the scene.
- Overlay canvases draw over everything, in pixels, stretched when a screenshot's size differs from the screen's.
- Screen-space camera canvases draw as overlays for now.
- An MCP e2e test screenshots an overlay Image.
- Not yet: masks and clipping (
Mask,RectMask2D), sprite meshes for tight sprites, nested canvas sorting overrides. - Next: Text and TextMeshPro (with a bundled OFL font and a glyph atlas), then EventSystem raycasts and input, and Button, Toggle and Slider.
Phase 5 · Slice 4 ·