예제 #1
0
    // récupèretous les points du collider et les traites pour les rajouter à la liste de points //
    private void GetBoxVertices(BoxCollider2D box)
    {
        Light_Box l_box = new Light_Box(box);

        List <Vector3> points = l_box.GetVertices();


        float box_radius   = Vector2.Distance(box.transform.position, points[0]);
        float box_distance = Vector2.Distance(box.transform.position, transform.position);

        if (box_radius + box_distance > GetRadius())
        {
            points = l_box.GetIntercections(points, this);
        }
        points = l_box.FindPoint(points, this);

        // si tout les points ne sont pas dans la lumière alors on regarde s'il n'y a pas d'intersection

        if (points.Count > 0)
        {
            points = Light_Tools.TrieAngle(points);

            points = l_box.CreateBoxLimit(points, box, this);

            foreach (Vector3 v in points)
            {
                pointList.Add(v);
            }
        }
    }
예제 #2
0
    private void GetCircleVertices(CircleCollider2D circle)
    {
        List <Vector3> points   = new List <Vector3>();
        Light_Circle   l_circle = new Light_Circle(circle);

        points = l_circle.GetVertices(points, this);

        points = l_circle.FindCirclePoint(points, this);
        if (points.Count > 0)
        {
            points = Light_Tools.TrieAngle(points);
            points = l_circle.CreateCircleLimit(points, this);
            foreach (Vector3 v in points)
            {
                pointList.Add(v);
            }
        }
    }