本章和大家一起讨论下unity中的射线碰撞。
博主最近在做一个通过手指点选模型,然后控制模型移动 旋转 缩放的功能模块。
在做的过程中用到了射线碰撞,所以想记录下。
/**
* 从摄像头发出一条射线途经触摸点 返回碰撞的组件
* **/
public static GameObject getCollisionObc(Camera camera, Vector3 touchPos)
{
Ray ray = camera.ScreenPointToRay(touchPos);//从摄像机发出到点击坐标的射线
RaycastHit hitInfo;
GameObject gameObj = null;
if (Physics.Raycast(ray, out hitInfo))
{
//获取碰撞的物体
//Debug.DrawLine(ray.origin, hitInfo.point,Color.red);//划出射线,只有在scene视图中才能看到
gameObj = hitInfo.collider.gameObject;
return gameObj;
}
else
{
return null;
}
}