Skip to content

Instantly share code, notes, and snippets.

@kiranmaya
Forked from TarasOsiris/CameraExtensions.cs
Created August 16, 2016 14:24
Show Gist options
  • Save kiranmaya/855931e3fe54a42a7ec343b7200ad0de to your computer and use it in GitHub Desktop.
Save kiranmaya/855931e3fe54a42a7ec343b7200ad0de to your computer and use it in GitHub Desktop.
using UnityEngine;
public static class CameraExtensions {
public static void LayerCullingShow(this Camera cam, int layerMask) {
cam.cullingMask |= layerMask;
}
public static void LayerCullingShow(this Camera cam, string layer) {
LayerCullingShow(cam, 1 << LayerMask.NameToLayer(layer));
}
public static void LayerCullingHide(this Camera cam, int layerMask) {
cam.cullingMask &= ~layerMask;
}
public static void LayerCullingHide(this Camera cam, string layer) {
LayerCullingHide(cam, 1 << LayerMask.NameToLayer(layer));
}
public static void LayerCullingToggle(this Camera cam, int layerMask) {
cam.cullingMask ^= layerMask;
}
public static void LayerCullingToggle(this Camera cam, string layer) {
LayerCullingToggle(cam, 1 << LayerMask.NameToLayer(layer));
}
public static bool LayerCullingIncludes(this Camera cam, int layerMask) {
return (cam.cullingMask & layerMask) > 0;
}
public static bool LayerCullingIncludes(this Camera cam, string layer) {
return LayerCullingIncludes(cam, 1 << LayerMask.NameToLayer(layer));
}
public static void LayerCullingToggle(this Camera cam, int layerMask, bool isOn) {
bool included = LayerCullingIncludes(cam, layerMask);
if (isOn && !included) {
LayerCullingShow(cam, layerMask);
} else if (!isOn && included) {
LayerCullingHide(cam, layerMask);
}
}
public static void LayerCullingToggle(this Camera cam, string layer, bool isOn) {
LayerCullingToggle(cam, 1 << LayerMask.NameToLayer(layer), isOn);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment