Geometry, layers, animation and rendering.
The shader evaluates distance to the outline per pixel. Curves, corners, strokes and soft edges stay sharp at any scale. Geometry and appearance remain editable parameters.
A UniShape stores editable geometry and layers. Corner radii, outlines, shadows and gradients remain parameters, so a new appearance does not require another sprite.
Yes — GameObject ▸ UI ▸ UniShape from SVG Path, or the same entry from the LightSide palette on Alt+L. The parser handles M, L, H, V, C, S, Q, T, A and Z in both absolute and relative form, converts elliptical arcs to cubics and flips to Unity’s y-up. It reads the first sub-path only, so one contour per shape.
Composite shapes support subtraction, intersection and exclusion. Cut layers subtract from lower appearance layers. An imported vector path still represents a single contour.
A compatible stack uses one draw call and can batch with UniText and UniLottie. Different materials, sampled textures, blend modes, masks or draw order can split batches.
UniShapes uses its own stroke and shadow layers. Each layer has editable paint, geometry and blending settings; standard uGUI mesh modifiers are not applied.
Rendering buffers and GPU data rows are reused. Capacity growth, authoring changes and asset creation may allocate; the rendering reference describes those boundaries.
The shared shader supports Shader Model 3.5 graphics APIs, including WebGL 2.0, GLES3, Vulkan, Metal and desktop graphics backends.
Discord is the main channel for questions, bug reports, help and discussion.