如何让子弹朝着自己屏幕中间的准心所瞄准的方向进行射击呢?
总结下来有那么几步
1、从屏幕中间发射一条射线
//屏幕中心点映射到世界坐标系
Vector3 middleScreenPoint = PlayerCameraGameObject.ScreenToWorldPoint(new Vector3(Screen.width / 2, Screen.height / 2, 0));
//根据中心点和照相机朝向创建射线
Ray ray = new Ray(middleScreenPoint, PlayerCameraGameObject.transform.forward);
2、用射线检测去检测碰撞到的物体
//检测方式一
RaycastHit HitInfo;
if (Physics.Raycast(ray, out HitInfo))
{
}
3、在枪口的位置设置一个空物体
4、 将空物体的z方向设置成射线检测到的物体的朝向即可
//检测方式二
if (Physics.Raycast(ray, out var astrayHitInfo))
{
//根据检测结果修改朝向
_shootPlace.transform.LookAt(astrayHitInfo.point);
}