Unity/C#摄像机消隐掩模符号

Unity/C#摄像机消隐掩模符号,c#,unity3d,rendering,shader,vertex-shader,C#,Unity3d,Rendering,Shader,Vertex Shader,我有一个来自github项目的着色器管理脚本,我试图逐行理解它的功能。在某一点上,它会取下相机并执行以下操作: m_transparentCamera.cullingMask = ~(1 << LayerMask.NameToLayer("Transparent")); m_transparentCamera.cullingMask = 1 << LayerMask.NameToLayer("Transparent"); m_transparentCamera.

我有一个来自github项目的着色器管理脚本,我试图逐行理解它的功能。在某一点上,它会取下相机并执行以下操作:

 m_transparentCamera.cullingMask = ~(1 << LayerMask.NameToLayer("Transparent")); 
 m_transparentCamera.cullingMask = 1 << LayerMask.NameToLayer("Transparent");

m_transparentCamera.cullingMask=~(1摄影机的消隐遮罩告诉它要渲染哪些层


第一个掩码,
~(谢谢你。为什么它会被透明层索引左移1?为什么不把它保留为~(LayerMask.NameToLayer)和(LayerMask.NameToLayer)?@user430481假设
NameToLayer
返回
3
,它在二进制中是
0011
,但这与
1不同