在Unity 3D开发过程中,常常需要用到交互,交互常用的方法有有鼠标点击和手势交互,分别需要用到射线检测和碰撞检测,这里将两种方法总结如下:
射线检测
1、首先获取鼠标在屏幕上点击的位置发出的射线,用方法Camera.ScreenPointToRay(Input.mousePosition)
2、声明射线检测的结果存储于RaycastHit结构体重
3、使用物体射线的检测结果Physics.Raycast(),有很多重载的方法,可以设置碰撞那一个层级,也可以不设置
4、若需要对碰撞物体进行操作
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hitInfo;
if (Physics.Raycast(ray, out hitInfo, 200))
{
if (Input.GetMouseButtonDown(0))
{
Debug.Log("碰撞对象: " + hitInfo.collider.name);
}
}