private void ShowDirections() { Handles.color = Color.green; Vector3 point = _curve.GetPoint(0.0f); Handles.DrawLine(point, point + _curve.GetDirection(0.0f) * directionScale); for (int i = 0; i < lineSteps; i++) { point = _curve.GetPoint((1 + i) / (float)lineSteps); Handles.DrawLine(point, point + _curve.GetDirection((i + 1) / (float)lineSteps) * directionScale); } }
public IEnumerator Move(Transform player, BezierCurve bezierCurve, float speed) { player.position = bezierCurve.GetPoint(0); for (int i = 1; i < bezierCurve.GetPoints().Count;) { player.position = Vector2.MoveTowards(player.position, bezierCurve.GetPoint(i), Time.deltaTime * speed); yield return(new WaitForFixedUpdate()); if (Vector2.Distance(player.position, bezierCurve.GetPoint(i)) < 0.001f) { i++; } } }