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);
            }
        }
示例#2
0
        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++;
                }
            }
        }