-
在Unity中使用LayerMask
作者: Azure 发布: 2018-6-20 分类: 网络收藏 阅读: 次 查看评论
-
Layers通常被摄像机用来渲染部分场景,和灯光照射部分场景使用。但是它们也可以用来做射线检测时忽略一些collder或Collision使用。
如何编辑Layers.
在代码中使用时如何开启某个Layers?答案是正确使LayerMask。
LayerMask mask = 1 << 你需要开启的Layers层。
LayerMask mask = 0 << 你需要关闭的Layers层。
例如:
LayerMask mask = 1 << 2; 表示开启Layer2。
LayerMask mask = 0 << 5;表示关闭Layer5。
LayerMask mask = 1<<2|1<<8;表示开启Layer2和Layer8。
LayerMask mask = 0<<3|0<<7;表示关闭Layer3和Layer7。
void Update () { if (Input.GetMouseButtonDown(0)) { // 只检测第6层 LayerMask mask1 = 1 << 6; // 只不检测第7层 LayerMask mask2 = ~(1 << 7); // 只检测第8层和第9层 LayerMask mask3 = (1 << 8)|(1 << 9); Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); RaycastHit hit; if (Physics.Raycast(ray, out hit, mask1)) { Debug.Log("test"); } } }
- 控制面板
-
- 网站分类
-
- 搜索
-
- 最新留言
-
- 友情链接
-