我终于弄清楚了为什么我的地面碰撞代码的图层蒙版不起作用。我曾经NameToLayer()
用来获取所需的图层,但是图层蒙版使用位移来实际设置图层蒙版值。这是非常不寻常的,我看不出任何原因都无法在后面的代码中处理。为什么我们必须使用如下代码:
mask = 1 << LayerMask.NameToLayer("Default");
当这样的事情:
mask = LayerMask.NameToLayer("Default");
更加直观,并且与Unity API的其余部分类似?
2
使用字符串版本需要更多处理能力。更不用说该字符串在内部是一个数组,它是一种引用类型,并被添加到垃圾收集器中。
—
Krythic