Curvy Spline


Defines the curve type: Linear, Bezier, Catmull-Rom or TCB

Restrict To 2D

When enabled, the default SceneView's Move tool is replaced by a 2D version that uses the local X/Y plane. If “Use Tiny 2D Handles” is enabled in the preferences, no tool is shown and you can drag the Control Point gizmos around directly.


Whether the spline should be closed, i.e. the last Control Point should form a segment to the first Control Point.

Auto End Tangents

(Open Catmull/TCB splines only)

When enabled, the very first/last Control Points are automatically calculated using spline direction.


Determines how to calculate orientation:

  • None - No orientation at all. The cheapest performance wise
  • Static - use Control Point transform rotation
  • Dynamic - calculate a least angle, smooth orientation. The most expensive performance wise
Dynamic Orientation

In this mode a direction vector is smoothly transported between two orientation anchors with the least possible angle angle difference. To control the flow, you can enable the Orientation Anchor option at certain Control Points. Note that the first Control Point is automatically defined as an orientation anchor.

(Bezier Curves only)

Default Distance %

Determines the default Bezier Handle length when using Auto Handles

(TCB curves only)


Determines global tension used by Control Points


Determines global continuity used by Control Points


Determines global bias used by Control Points

Set Catmull/Cubic/Linear

Presets TCB parameters to “mimic” a certain curve type

Show Gizmos

Whether to show the spline in the SceneView or not


Color used to draw the spline. Default value can be defined in the Editor Preferences

Active Color

Color used to draw the spline if selected. Default value can be defined in the Editor Preferences

Cache Density

Determines the cache density. See caching for more details.

Max Points Per Unit

The maximum number of sampling points per world distance unit. Sampling is used in caching, spline rasterization and shape extrusion for example.

Use Pooling

If enabled, Control Points are disabled when deleting and reused when created instead of destroying and creating them. This prevents framerate glitches when adding and removing a lot of CP's at runtime. Pooled GameObjects are stored (invisible) by the Curvy Global Manager object.

Use Threading
Threading is is currently not supported when targetting WebGL and Universal Windows Platform.

If enabled, building the cache is done in parallel on multiple threads. Threads in general have a processing overhead, so if the cache is small enough, the benefits from splitting its building can be smaller that the cost of the threading overhead.

Check Transform

If enabled, all Control Point's transforms will be checked for changes each frame. Enable if you animate transforms or change them by code directly. Otherwise, disable it to save some CPU time.

Check Update

Determine when the spline updates itself!

You can react to certain spline related events by adding a handler to the following UnityEvents:


Called each time after the spline has refreshed


Called after one or more ControlPoints were added or deleted


Called before a Control Point is about to be added. Cancel this event to prohibit adding a CP


Called after a Control Point is added


Called before a Control Point is about to be deleted. Cancel this event to prohibit deleting a CP