예제 #1
0
    // We do what Light Collider does, but only once on start.
    void Start()
    {
        Vector2[] directions = new Vector2[numVertices];
        int       layerMask;

        lines        = GetComponent <LineRenderer>();
        polyCollider = GetComponent <PolygonCollider2D>();

        if (lines != null)
        {
            lines.positionCount = numVertices;
        }

        directions = new Vector2[numVertices];

        for (int i = 0; i < numVertices; i++)
        {
            directions[i] = new Vector2(
                Mathf.Cos((float)i * (2 * Mathf.PI / (float)numVertices)),
                Mathf.Sin((float)i * (2 * Mathf.PI / (float)numVertices))
                );
        }

        layerMask = (int)0x7FFFFFFF;

        for (int i = 0; i < avoidLayers.Length; i++)
        {
            layerMask ^= (1 << avoidLayers[i]);
        }

        //Setup our poly collider and line renderers
        LightCollider.UpdateCollider(lines, polyCollider, transform, directions, layerMask, maxDistance);
    }
예제 #2
0
    //Flip the character sprite to match movement
    void FlipPlayer()
    {
        facingRight = !facingRight;
        Vector3 localScale = gameObject.transform.localScale;

        localScale.x        *= -1;
        transform.localScale = localScale;
        lightCollider.UpdateCollider();
    }