Layer的设置(层 此处用于区分碰撞体)
int layer = LayerMask.NameTolayer("层的名字") 在射线检测时使用1<<layer 例如User Layer9 = test;int layer =LayerMask.NameToLayer(“test”); 那么layer=9 代表32位int类型序号9处为1,即第9层 ; 使用1<<Layer后, int 型 32位 每一位取 0或者1,1代表这层 (…0000 0001向前移动9) 即….0000 0010 0000 0000(其余位为0);
int layer = LayerMask.GetLayer("层1","层2") 在射线检测时使用layer
public LayerMask layer; 在射线检测时使用layer
射线检测 Ray ray = new Ray(射线的起始位置,射线方向);Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); RastCastHit hit;//碰到的碰撞体 if(Pysics.Raycast(Ray,out hit,distance,layer)){ }ifPhysics.LineCast(起点,终点,layer){有碰撞体的物体进入这个直线范围} 球形范围检测 Collider[] cols = Physics.SpereCast(球形的原点,球的半径,layer);