void OnSceneGUI()
{
_spline = target as BezierSpline;
_splineT = _spline.transform;
_splineR = Tools.pivotRotation == PivotRotation.Local ? _splineT.rotation : Quaternion.identity;
// Draw curves
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;
}
// Show velocity
if(_spline.showVelocity)
{
Vector3 lineStart = _spline.GetPoint(0f);
Handles.color = Color.green;
Handles.DrawLine(lineStart, lineStart + _spline.GetDirection(0f));
int steps = _spline.numIterations * _spline.CurveCount;
for (int i = 1; i <= steps; i++) {
Vector3 lineEnd = _spline.GetPoint(i / (float)steps);
Handles.DrawLine(lineEnd, lineEnd + _spline.GetDirection(i / (float)steps));
}
}
}