//鼠标位置
private Vector3 currentMousePositon;
//3D射线的碰撞信息,就存储在这里
private RaycastHit hitInfo3D;
//射线碰撞的层标记,与哪些层进行碰撞
private int hitMask;
// Use this for initialization
void Start () {
//计算射线碰撞的层标记(在此处是和名字叫"lalala"的层进行碰撞)
hitMask += 1 << LayerMask.NameToLayer("lalala");
}
//这里是实际用到这个的函数,中间省略直接看这个射线怎么使用
//生成一条3D射线
Ray testRay = Camera.main.ScreenPointToRay(Input.mousePosition);
//发射射线
bool hitResult= Physics.Raycast(testRay, out hitInfo3D, Camera.main.farClipPlane, hitMask);
最下面的Camera.main.farClipPlane是main摄像机的最远距离,hitInfo3D作为一个out量,是输出的碰撞信息。