
SplineBuilder is a modular Unity toolkit to create/edit splines in Editor & runtime: linear & Bézier, bezier graph paths with A*/Dijkstra, path following, unified extensible API.SplineBuilder is a complete toolkit to create, edit, and use curves (splines) directly in the Unity Editor and at runtime. Built for level design, camera rails, character paths, AI/navigation, and procedural modeling, it combines an ergonomic editor workflow with a unified, extensible API.HighlightsCurve types: Linear splines and Bézier splines.Spline graphs: Node/link graphs with built-in pathfinding (A* and Dijkstra).Spline following: Precise control of tangent and orientation to animate any Transform.Dedicated editor tools: Toolbar with hand, select/move anchors, add/delete points, anchor parameters, tangent tools, and a configurable grid (axes, color, cell size, snapping).One API everywhere: Same methods in Editor and runtime for clean integrations.Extensible design: Inherit from the base classes to implement custom spline types or behaviors.DescriptionWith its integrated editor, SplineBuilder makes curve manipulation fast and visual: add and position anchors, tweak in/out tangents, and enable a snapping grid for pixel-perfect placement.On the code side, a coherent runtime/Editor API lets you sample positions, query geometry, drive objects along paths, or compute optimal routes over a spline graph. The architecture slots smoothly into existing pipelines and serves as a strong foundation for advanced needs via inheritance.Scope: SplineBuilder focuses exclusively on spline editing and path following. It is not a modeling or mesh-generation tool, nor does it provide level-building, physics, animation rigging, or VFX authoring featuresCore componentsASpline (shared base, point API and utilities)Spline (linear): add/insert/remove points, loop supportBezierSpline: in/out tangents with modes (MANUAL, LINKED, ORIENTEDLINK, LENGTHLINK, LINEAR)Graph splines: GraphSpline with concrete GraphLinearSpline and BezierGraphSplineFollowSpline: path following with units (PathUnits / Distance / Normalized), index bounds, custom paths, and A / Dijkstra* algorithmsEditor tooling Toolbar actions:navigateselect/move anchorsadd/delete points and linksparameters,tangent tools (Mirror & Equal, Mirror Only, Manual, No Tangent) Display Grid: axes, color, cell size, and snappingAPI examples (by capability)Sampling & geometry: GetPoint(int), GetLocalPoint(int)Pathfinding (graphs): BuildPathAStar(...), BuildPathDijkstra(...)Path maintenance: RebuildPath(), ReConstructPath() after editsIntegration — Callbacks & EventsFired whenever the BezierSpline is modified (adding/removing points, moving anchors, editing in/out tangents).Useful to trigger dependent systems (mesh refresh, baking, UI updates, caches).Bezier only: OnUpdateEvent fires on any BezierSpline change (move/add/remove/tangent edit).Non-graph splines: OnAddPointEvent(int prevIndex) and OnRemovePointEvent(int index) are available.Not available on GraphSpline<,>.This package was created with the assistance of AI tools, specifically ChatGPT, which helped streamline the creation of the technical documentation and improve its clarity and structure. AI was used to ensure the documentation is detailed, user-friendly, and well-organized.