unity中由相机发射出的射线经过鼠标检测物体

原理:创造一条射线由相机发出经过鼠标无限衍生,被射线经过的物体会形成层,由代码中的指定层数 将被指定层数的物体信息返回到射线碰撞变量。   

代码:Ray ray=Camera.main.ScreenPointToRay(Input.mousePosition);
        RaycastHit hit;                                                                                               Physics.Raycast(ray, out hit, Mathf.Infinity, 1 << chen);

代码详解:创造一个射线变量ray=由相机发射出经过鼠标的射线;

声明一个射线碰撞变量 hit;

射线检测(射线,将碰撞到的指定物体信息传入hit并返回出去,碰撞到的第一个物体否则将一直延申,定义检测射线经过的物体层);

注:chen为自定义的名字int类型,层数一般设置为8,因为1到7层都是不可修改的系统层,真正接触到的其实是第8层。

                                                                                                                                                                                                                            

猜你喜欢

转载自blog.csdn.net/2401_84659046/article/details/140401493