public SplineCameraStateSettings(BezierSpline spline, float splinePositionOffset, float cameraLineOfSightOffset, float cameraMaxDistance, float splineTravelMaxSpeed)
 {
     this._spline = spline;
     this._splinePositionOffset = splinePositionOffset;
     this._cameraLineOfSightOffset = cameraLineOfSightOffset;
     this._cameraMaxDistance = cameraMaxDistance;
     this._splineTravelMaxSpeed = splineTravelMaxSpeed;
 }
            private void OnSceneGUI()
            {
                spline = target as BezierSpline;
                handleTransform = spline.transform;
                handleRotation = Tools.pivotRotation == PivotRotation.Local ?
                    handleTransform.rotation : Quaternion.identity;

                Vector3 p0 = ShowPoint(0);
                
                for (int i = 1; i < spline.ControlPointCount; i += 3)
                {
                    Vector3 p1 = ShowPoint(i);
                    Vector3 p2 = ShowPoint(i + 1);
                    Vector3 p3 = ShowPoint(i + 2);

                    Handles.color = Color.gray;
                    Handles.DrawLine(p0, p1);
                    Handles.DrawLine(p2, p3);

                    Handles.DrawBezier(p0, p3, p1, p2, Color.white, null, 2f);
                    p0 = p3;
                }
                //ShowDirections();
            }
            public override void OnInspectorGUI()
            {
                spline = target as BezierSpline;
                EditorGUI.BeginChangeCheck();
                bool loop = EditorGUILayout.Toggle("Loop", spline.Loop);
                
                if (EditorGUI.EndChangeCheck())
                {
                    Undo.RecordObject(spline, "Toggle Loop");
                    EditorUtility.SetDirty(spline);
                    spline.Loop = loop;
                }

                if (selectedIndex >= 0 && selectedIndex < spline.ControlPointCount)
                {
                    DrawSelectedPointInspector();
                }

                if (GUILayout.Button("Add Curve"))
                {
                    Undo.RecordObject(spline, "Add Curve");
                    spline.AddCurve();
                    EditorUtility.SetDirty(spline);
                }
            }