Unity Layers 射线检测

来源:互联网 发布:淘宝异常订单销量删除 编辑:程序博客网 时间:2024/04/29 22:27

Unity的Layer其实是用一个int32的二进制来标识这总共32个层的。如图所示:

这里写图片描述


所以在使用 Physics2D.Raycast(Vector2 origin,Vector2 direction,float distance,int layerMask)的时候第四个参数layerMask就是这个int32的值。

比如,如果让射线只检测UI层,那么就这样
Physics2D.Raycast(origin,direction,distance,1<LayerMask.NameToLayer( "UI" ))
就意味着传进去的是二进制00000000000000000000000000100000,

如果想检测Water和UI两层的话,就用位运算
Physics2D.Raycast(origin,direction,distance,1<LayerMask.NameToLayer( "UI" ) | 1<LayerMask.NameToLayer( "Water" ))
就意味着传进去的是二进制00000000000000000000000000110000。

0 0
原创粉丝点击