我的一个同事写了一个我不完全理解的声明。不幸的是,他现在不可用,所以就在这里(名称已修改,我们正在 Unity 中开发一款游戏)。
private readonly int FRUIT_LAYERS =
(1 << LayerMask.NameToLayer("Apple"))
| (1 << LayerMask.NameToLayer("Banana"));
NameToLayer 接受一个字符串并返回一个整数。我总是看到左移运算符与右侧的常量整数一起使用,而不是左侧,并且我通过 Google 找到的所有示例都遵循这种方法。在这种情况下,我认为他将 Apple 和 Banana 推到了同一个相关层(稍后我将使用它进行过滤)。将来会有更多的“水果”可供过滤。任何出色的stackoverflowers可以给我解释这些行发生了什么?