Physics.Raycast(Vector3 origin,Vector3 direction,RaycastHit hitInfo,float distance,int LayerMask) //前两个参数可以用一个Ray代替,等同于↓ Ray r = mCamera.ScreenPointToRay(Input.mousePosition); Physics.Raycast(Ray r,RaycastHit hitInfo,float distance,int LayerMask);
将鼠标点击屏幕,由Camera向鼠标点击方向作为一条射线,然后用RayCatch获取RayCastHit
LayerMask指定不检查的层次,可以通过方法将层的名字转换而成:
LayerMask Mask = LayerMask.NameToLayer("Entity"); Ray r = mCamera.ScreenPointToRay(Input.mousePosition); Physics.Raycast(Ray r,RaycastHit hitInfo,float distance,1<<Mask.value);
LayerMask的每一位都代表一个层,第6层Layer表示在第7位,如果为1跳过这层。