untiy射击游戏的子弹射击问题

如何让子弹朝着自己屏幕中间的准心所瞄准的方向进行射击呢?
总结下来有那么几步
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);
}
发布了201 篇原创文章 · 获赞 210 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_40666620/article/details/104821012