如何正确使用LayerMask避免游戏场景渲染错误?

摘要:LayerMask: 在射线检测的时候, 1、使用LayerMask.NameToLayer赋予层级参数: Physics.Raycast(ray, out hit, Mathf.Infinity, (1 <&
LayerMask: 在射线检测的时候, 1、使用LayerMask.NameToLayer赋予层级参数: Physics.Raycast(ray, out hit, Mathf.Infinity, (1 << LayerMask.NameToLayer("Test1")) | (1 << LayerMask.NameToLayer("Test2")) | (1 << LayerMask.NameToLayer("Test3")) | 1 << LayerMask.NameToLayer("Test4")) 2、使用LayerMask.GetMask赋予层级参数: int layerMask1 = LayerMask.GetMask("Test1"); int layerMask2 = LayerMask.GetMask("Test2"); RaycastHit[] hitInfo = Physics.RaycastAll(this.transform.position, v3, 10f, layerMask1 | layerMask2); 区别就是NameToLayer需要手动做位移运算,而GetMask不需要这样做。