{{description>Learn about Curvy Spline types and other settings, and learn more about its events.}} {{indexmenu_n>1}} ====== Curvy Spline ====== ===== Reference ===== ==== General ==== == Interpolation== Defines the curve type: Linear, Bezier, Catmull-Rom, B-Spline or TCB == Restrict To 2D== When enabled, the default SceneView's Move tool is replaced by a 2D version that uses the plane defined in [[#restricted_2d_plane|Restricted 2D Plane]]. If [[documentation:toolbar:preferences#use_tiny_2d_handles|Use Tiny 2D Handles]] is enabled in the preferences, no tool is shown and you can drag the Control Point gizmos around directly. ==Restricted 2D Plane== //(Only when Restrict To 2D is true)// The local 2D plane to restrict the spline's control points to ==Closed== 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. == Orientation== 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 [[curvysplinesegment#Orientation Anchor]] option at certain Control Points. Note that the first Control Point is automatically defined as an orientation anchor. ====Global Bezier Options==== //(Bezier Curves only)// ==Default Distance %== Determines the default Bezier Handle length when using Auto Handles ==== Global TCB Options ==== //(TCB curves only)// ==Tension== Determines global tension used by Control Points ==Continuity== Determines global continuity used by Control Points ==Bias== Determines global bias used by Control Points ==Set Catmull/Cubic/Linear== Presets TCB parameters to "mimic" a certain curve type ==== Advanced Settings ==== ==Show Gizmos== Whether to show the spline in the SceneView or not ==Color== Color used to draw the spline. Default value can be defined in the [[:documentation:toolbar:preferences]] ==Active Color== Color used to draw the spline if selected. Default value can be defined in the [[:documentation:toolbar:preferences]] ==Cache Density== Determines the cache density. See [[:documentation:performancetips:start#caching]] for more details. ==Max Points Per Unit== The maximum number of sampling points per world distance unit. Sampling is used in [[:documentation:performancetips:start#caching]], [[documentation:generator:modules:rasterizepath|spline rasterization]] and [[documentation:generator:modules:shapeextrusion|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 [[..:components:_curvyglobal_]] object. ==Use Threading== Threading is is currently not supported when targetting WebGL and Universal Windows Platform. If enabled, building the [[:documentation:performancetips:start#caching|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== Play Mode only. If enabled, any Transform modifications made to the Control Points will cause the spline to update accordingly. if you are not making such modifications while in Play Mode, you can improve performance by disabling this option. ==Check Update== Determine when the spline updates itself! ==== Events ==== You can react to certain spline related events by adding a handler to the following UnityEvents: ==On Initialized== Called after the spline's initialization ==On Refresh == Called each time after the spline has refreshed, including its initial update ==On After Control Point Changes == Called after one or more ControlPoints were added or deleted ==On Before Control Point Add== Called before a Control Point is about to be added. Cancel this event to prohibit adding a CP ==On After Control Point Add == Called after a Control Point is added ==On Before Control Point Delete== Called before a Control Point is about to be deleted. Cancel this event to prohibit deleting a CP