public override void OnInspectorGUI() { DrawDefaultInspector(); spline = target as BezierSplineCopy; if (GUILayout.Button("Add Curve")) { Undo.RecordObject(spline, "Add Curve"); spline.AddCurve(); EditorUtility.SetDirty(spline); } }
private void OnSceneGUI() { spline = target as BezierSplineCopy; handleTransform = spline.transform; handleRotation = Tools.pivotRotation == PivotRotation.Local ? handleTransform.rotation : Quaternion.identity; Vector3 p0 = ShowPoint(0); for (int i = 1; i < spline.points.Length; 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); p0 = p3; } if (!spline.controlPointsComputed) { spline.ComputeControlPoints(); } p0 = spline.controlPoints[0]; for (int i = 1; i < spline.controlPoints.Length; i += 3) { Vector3 p1 = spline.controlPoints[i]; Vector3 p2 = spline.controlPoints[i + 1]; Vector3 p3 = spline.controlPoints[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; } }