public override void OnInspectorGUI() { base.OnInspectorGUI(); spline = (SplineComputer)target; Undo.RecordObject(spline, "Edit Points"); if (splines.Length == 1) { SplineEditorGUI.BeginContainerBox(ref pathEditor.open, "Edit"); if (pathEditor.open) { SplineEditor.Space lastSpace = pathEditor.space; pathEditor.DrawInspector(); if (lastSpace != pathEditor.space) { SplinePrefs.pointEditSpace = (SplineComputer.Space)pathEditor.space; SplinePrefs.SavePrefs(); } } else if (pathEditor.lastEditorTool != Tool.None && Tools.current == Tool.None) { Tools.current = pathEditor.lastEditorTool; } SplineEditorGUI.EndContainerBox(); } SplineEditorGUI.BeginContainerBox(ref computerEditor.open, "Spline Computer"); if (computerEditor.open) { computerEditor.DrawInspector(); } SplineEditorGUI.EndContainerBox(); if (splines.Length == 1) { SplineEditorGUI.BeginContainerBox(ref triggersEditor.open, "Triggers"); if (triggersEditor.open) { triggersEditor.DrawInspector(); } SplineEditorGUI.EndContainerBox(); SplineEditorGUI.BeginContainerBox(ref debugEditor.open, "Editor Properties"); if (debugEditor.open) { debugEditor.DrawInspector(); } SplineEditorGUI.EndContainerBox(); } if (GUI.changed) { if (spline.isClosed) { pathEditor.points[pathEditor.points.Length - 1] = pathEditor.points[0]; } EditorUtility.SetDirty(spline); } }