Unity 学习教程 之 LayerMask 的位运算及应用
1、Layer定义:
Unity是用 int32来表示32个Layer层,int32用二进制来表示一共有32位。
0000 0000 0000 0000 0000 0000 0000 0000
31 0
2、Layer举例说明:
LayerMask mask = 1<<2; //开启layer 2
其中 <<左边的 1表示有[开启],0表示没有该layer[忽略] 。右边的2表示左移2位即是 layer2层的位置。
1、打开Unity,新建一个空工程,具体如下图

2、在场景中添加一个 Cube,并把他的 Layer 设置为 UI,具体如下图

3、在工程中,新建一个脚本,命名为 Test,并右键脚本 Open C# Project 打开,具体如下图


4、在打开的脚本上编写代码,具体代码和代码说明如下图


5、脚本的具体内容如下:
using UnityEngine;
public class Test : MonoBehaviour {
// Use this for initialization
void Start () {
}
//打开UI层,变1 或 运算符
void Show() {
Camera.main.cullingMask |= 1 << LayerMask.NameToLayer("UI");
}
//关闭UI层,变0 按位与 & 按位取反 ~
void Hide() {
Camera.main.cullingMask &= ~(1 << LayerMask.NameToLayer("UI"));
}
// 开关UI层,按位异或 ^
void Toggle() {
Camera.main.cullingMask ^= 1 << LayerMask.NameToLayer("UI");
}
private void OnGUI()
{
if (GUILayout.Button("Show")) {
Show();
}
if (GUILayout.Button("Hide")) {
Hide();
}
if (GUILayout.Button("Toggle")) {
Toggle();
}
}
}
6、脚本编译正确,回到Unity界面,把脚本挂载到 Main Camera 上,具体如下图

7、运行场景,开始 Cube 可见,按下 Hide 按钮,Cube消失,按下 Show 按钮,Cube出现,按下 Toggle,第一次 Cube 消失,第二次 Cube 出现,具体如下图





8、到此,《Unity 学习教程 之 LayerMask 的位运算及应用》讲解结束,谢谢