void Update() { t += Time.deltaTime / (Curve.Length / Speed); if(t > 1) { Curve = Curve.NextSegment()[0]; t -= 1; } transform.position = Curve.GetPoint(t); transform.forward = Curve.GetTangent(t); }
public static void DrawHandles(BezierSystemSegment seg, Color color) { if (seg == null) return; for (int i = 0; i < seg.Resolution; i++) { float t = (float)i / (float)seg.Resolution; float t1 = (float)(i + 1) / (float)seg.Resolution; var old = Handles.color; Handles.color = color; Handles.DrawLine(seg.GetPoint(t), seg.GetPoint(t1)); Handles.color = old; } }