public bool IsRendered() { string type = owner.GetType().ToString(); switch (type) { case "Light2D": Light2D light = (Light2D)owner; if (light) { return(light.meshMode.enable && light.isActiveAndEnabled && light.InAnyCamera()); } break; case "LightSprite2D": LightSprite2D sprite = (LightSprite2D)owner; if (sprite) { return(sprite.meshMode.enable && sprite.isActiveAndEnabled); } break; } return(false); }
static public void Draw(Light2D light, Camera camera) { if (light.Buffer == null) { return; } if (light.isActiveAndEnabled == false) { return; } if (light.InAnyCamera() == false) { return; } Vector2 pos = LightingPosition.GetPosition2D(-camera.transform.position); Vector2 size = new Vector2(light.size, light.size); if (light.IsPixelPerfect()) { size = LightingRender2D.GetSize(camera); pos = Vector2.zero; } else { pos += light.transform2D.position; } Color lightColor = light.color; lightColor.a = light.color.a / 2; Material material = Lighting2D.materials.GetLight(); material.mainTexture = light.Buffer.renderTexture.renderTexture; material.SetColor("_TintColor", lightColor); Rendering.Universal.Texture.Draw(material, pos, size, 0); }