public static Spline CreateSpline(Vector3 position, Thickness thickness, Twist twist, ControlPointMode mode = ControlPointMode.Mirrored, string undorecord = "Battlehub.Spline.Create") { GameObject spline = new GameObject(); spline.name = "Spline"; if (!FindObjectOfType <GLRenderer>()) { GameObject go = new GameObject(); go.name = "GLRenderer"; go.AddComponent <GLRenderer>(); } Undo.RegisterCreatedObjectUndo(spline, undorecord); Spline splineComponent = spline.AddComponent <Spline>(); splineComponent.SetControlPointMode(mode); splineComponent.SetTwist(0, twist); splineComponent.SetTwist(3, twist); splineComponent.SetThickness(0, thickness); splineComponent.SetThickness(3, thickness); spline.transform.position = position; return(splineComponent); }