// 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); }
//Flip the character sprite to match movement void FlipPlayer() { facingRight = !facingRight; Vector3 localScale = gameObject.transform.localScale; localScale.x *= -1; transform.localScale = localScale; lightCollider.UpdateCollider(); }