我在 Ubuntu 16.10 上使用 Unity 5.5。我有一个带有一组特定图层的相机剔除遮罩。
但是,在 Unity 编辑器界面中,剔除遮罩下拉菜单不会在我选择的图层旁边显示勾选。因此,当我选择的图层过多时,该字段会显示Mixed ...
,而我看不到我设置遮罩使用哪些图层。
当我登录时camera.cullingMask
,我得到了一个我无法理解的奇怪整数。我如何以编程方式查看我在剔除蒙版中选择了哪些层?
答案1
我在 Ubuntu 上遇到了同样的问题,并且没有解决复选标记错误的方法。
不过,我会尝试解释奇怪的整数您可以从属性中获得。它是一个位字段,其中每个层都分配有一个值:
Layer name | Layer Number | Mask value
Builtin Layer 0 | 0 | 1 << 0 = 1
Builtin Layer 1 | 1 | 1 << 1 = 2
Builtin Layer 2 | 2 | 1 << 2 = 4
Builtin Layer 3 | 3 | 1 << 3 = 8
Builtin Layer 4 | 4 | 1 << 4 = 16
Builtin Layer 5 | 5 | 1 << 5 = 32
Builtin Layer 6 | 6 | 1 << 6 = 64
Builtin Layer 7 | 7 | 1 << 7 = 128
User Layer 1 / 8 | 8 | 1 << 8 = 256
User Layer 2 / 9 | 9 | 1 << 9 = 512
...
(似乎用户层名称可能从 1 或 8 开始,具体取决于 Unity 版本)
您可以组合这些值,例如Builtin Layer 5
和User Layer 9
将导致1 << 5 | 1 << 9 = 2^5 | 2^9 = 32 | 512 = 32 + 512 = 544
。
读有关图层蒙版的更多信息在文档中。