Unity中关于胶囊体投射中遇到的一个坑

   今天项目中用到胶囊体投射,在设置LayerMask参数的时候直接使用LyaerMask.NameToLayer("SomeLayer")是行不通的,不会找到这个层级的,后来发现是在Unity的Layer层中一共有32个层级,相当于一个32位的二进制数,每个层级对应的位为1,其他为0,而得到的LyaerMask.NameToLayer("SomeLayer")是将1左移多少位,因此我们需要使用1<<LyaerMask.NameToLayer("SomeLayer") 替换就可以了,这个在官方的LayerMask中有讲到,还是对API不太了解导致,因此多看看API还是有好处的。这个LayerMask参数也是可以直接设置为1左移之后的得到的结果,比如你想要检测第4层,那么你可以直接输入2^4,16就可以了。同理,如果你想要同时检测第1层和第2层两层,那么可以把LayerMask参数设置为6,因为2^1+2^2 = 6,这样你就可以同时检测多个层级了。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值