Unity学习笔记1之LayerMask的理解和应用

本文介绍了Unity中Layers的概念,用于区分场景中的不同部分,并详细讲述了LayerMask的使用,包括如何通过位操作符进行目标检测的选择,以及在射线检测中的具体应用。同时提醒注意不要使用第31层,以避免与编辑器预览窗口冲突。
摘要由CSDN通过智能技术生成

Unity学习笔记1之LayerMask的理解和应用

关于Unity的Layers

Layers正如其字面意思,区分分层所用。常用于Camrea和Light渲染场景的特定部分,或者用于射线检测时区分检测目标。
如下图所示,是unity layers的设置界面,其中前8行为unity自身使用,显示为灰色。后24行,用户可以自行使用,比如,我将Layer12,Layer19分别命名为“Player”和“Enemy”。
在这里插入图片描述

其实在unity中,正是用一个Int32的数据存储Layers这32层的信息。Int32在二进制中共32位,正好一一对应这(Layer0-Layer31共32层)。

LayerMask的引入

当我们使用射线检测时,为了区分检测的目标,也为了节约性能,往往使用LayerMask来告诉引擎我们的目标是哪些层。
LayerMask其实就是一个Int32的数值,它的32位对应着Layers的32层。
二进制下,第X位为1表示打开X层的检测,为0表示关闭第X层的检测。
比如,LayerMask layerMask=4096; (4096的二进制为0000 0000 0000 0001 0000 0000 0000 0000)中,第13位为1,其他都为0ÿ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值