Unity Layers 射线检测

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

Unity Layers 射线检测_第1张图片


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

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

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

你可能感兴趣的:(Unity--开发实战)