コード例 #1
0
ファイル: BezierState.cs プロジェクト: LorenzoDezi/BezierWars
 protected bool CheckBezierCrossingSpawner(Vector3[] nodes)
 {
     for (int currIndex = 0; currIndex <= spawner.BezierLength; currIndex++)
     {
         Vector3 currentCurvePoint = BezierMath.BernsteinBezier(
             currIndex / (float)spawner.BezierLength, 2, nodes);
         if (Vector3.Distance(currentCurvePoint, spawner.transform.position)
             < spawner.DefenseBezierMinDistance)
         {
             return(true);
         }
     }
     return(false);
 }
コード例 #2
0
    IEnumerator BuildBezier(Vector3[] nodes)
    {
        var            lineRenderer = GetComponent <LineRenderer>();
        var            collider     = GetComponent <EdgeCollider2D>();
        List <Vector2> linePoints   = new List <Vector2>();

        for (int currIndex = 0; currIndex <= bezierLength; currIndex++)
        {
            Vector3 currentCurvePoint = BezierMath.BernsteinBezier(
                currIndex / (float)bezierLength, 2,
                nodes
                );
            linePoints.Add(currentCurvePoint);
        }
        collider.points = linePoints.ToArray();
        //The second for loop will render the actual line. This is done to build
        //the collider before the actual rendering
        for (int i = 0; i <= bezierLength; i++)
        {
            lineRenderer.positionCount = i + 1;
            lineRenderer.SetPosition(i, linePoints[i]);
            yield return(null);
        }
    }