1.出射点

在TPS第三人称射击游戏中,我们希望子弹从场景中的角色的枪口进行发射,而不是从摄像机或者玩家身体中,这样在视觉效果上,可以看到玩家的枪支开火

2.子弹飞行方向

相比于第一人称,第三人称就会面临一个问题,子弹的飞行方向.子弹在场景中从枪口位置进行初设,但是我们希望子弹可以射击到我们在屏幕中的准星位置.

在场景中的准星实际是在UI上的图片不能作为我们实际子弹目标方向.因此我们需要使用不同坐标空间的位置转换.
1.首先从UICamera的坐标空间中,获取到准星在UICamera坐标空间中的屏幕坐标,由于UICamera和主Camera的屏幕坐标是一样的
2.我们将准星的屏幕坐标使用Camera.main.ScreenPointToRay这个方法获取一条从主摄像机发出到摄像机近裁剪面上的坐标位置的一条射线,这个射线就是实际我们在游戏中从摄像机到屏幕瞄准的位置的一条射线
3.这样我们就可以得到子弹的射击方向
即为摄像机位置 + 射线方向 * 1000f - 开火位置,我们将此方向进行标准化,就可以作为子弹的出射方向了.

if (controller.tag == "Player"){//玩家发射子弹bulletRotation = Quaternion.LookRotation(controller.transform.forward);//获得准星的屏幕坐标Vector3 targetPixScreenPoint = uICamera.WorldToScreenPoint(targetPix.position);Ray ray = Camera.main.ScreenPointToRay(targetPixScreenPoint);Debug.DrawRay(transform.position, Camera.main.transform.position + ray.direction * 1000f - transform.position, Color.red);//我们只需要方向 所以讲得到的方向进行标准化bulletDirection = Vector3.Normalize(Camera.main.transform.position + ray.direction * 1000f - transform.position);}

第三人称射击游戏-子弹方向问题相关推荐

  1. Unity 第三人称射击游戏视角控制与武器瞄准

    ===================更新一下源工程链接: 链接:https://pan.baidu.com/s/15bxH-MPregp2ZIN92fK7XA 提取码:e7bp ========== ...

  2. 【Unity】第三人称射击游戏开发过程之开火设计(TPS.S.P2)

    [Unity]第三人称射击游戏开发过程之开火设计(TPS.S.P2) 枪械的开火 开火流程 开火前的准备 实体子弹的准备 开火逻辑 这一章我们来设计基础的枪械功能. 枪械的开火 我现在选择的武器是41 ...

  3. Unity制作第三人称射击游戏-成为创新游戏开发者学习教程

    用Unity游戏引擎学习和制作第三人称射击游戏-成为创新游戏开发者- TPS战地克隆 你会学到什么 Unity 3D游戏开发 如何打造TPP第三人称射击游戏 第三人控制者 第三人称动画 第三人运动控制 ...

  4. unity第三人称射击游戏_在游戏上第3部分完美的信息游戏

    unity第三人称射击游戏 Previous article 上一篇文章 The economics literature distinguishes the quality of a game's ...

  5. 【Unity】第三人称射击游戏开发过程之瞄准状态设计(TPS.S.P1)

    [Unity]第三人称射击游戏开发过程之瞄准状态设计(TPS.S.P1) 设计整体的结构与模式 瞄准状态的设计 瞄准相机 瞄准状态 瞄准时的鼠标移动速度限制 瞄准点的处理 角色在瞄准状态下的旋转 瞄准 ...

  6. Unreal5 第三人称射击游戏 角色基础制作2

    接上一篇 Unreal5 第三人称射击游戏 角色基础制作1 角色蹲伏效果 上面是需要的操作映射,蹲伏实现,首先要开启相应功能,你需要在角色移动组件上面开启可蹲伏 蹲伏还有一些其它设置,比如蹲下角色高度 ...

  7. 视频教程-Unity3D实战入门之第三人称射击游戏(TPS)-Unity3D

    Unity3D实战入门之第三人称射击游戏(TPS) 6年程序开发经验,精通C/C++/C#编程. 曾担任过Unity3d游戏开发主程和Unity3d游戏开发讲师,熟悉Unity3d的UI系统.物理引擎 ...

  8. Unity3D实战入门之第三人称射击游戏(TPS)-伍晓波-专题视频课程

    Unity3D实战入门之第三人称射击游戏(TPS)-327人已学习 课程介绍         这是一套第三人称射击游戏开发的入门基础课程. 本课程以一款小型的第三人称射击游戏为案例,手把手教你如何搭建 ...

  9. YGG 购买了 AAA 级第三人称射击游戏《Nyan Heroes》的 Genesis NFT

    Yield Guild Games(YGG)已经购买了<Nyan Heroes>的Genesis NFT,<Nyan Heroes>是一款建立在 Solana 区块链上的第三人 ...

最新文章

  1. MySQL初始化root密码以及root密码忘记解决方法
  2. Linux文件系统大杂烩
  3. 神州数码c语言笔试题,神州数码 面试
  4. .NET重构—单元测试重构
  5. python数据分析第三方库是_python数据分析复盘——数据分析相关库之Pandas
  6. Zynq SOC学习笔记之设备树
  7. C# Activator
  8. 云计算相关资料/博客/网上收集的关于OpenStack的一些资源
  9. urlrewrite 保持 posturl
  10. 【NOI2016】网格,离散化+求割点
  11. vs2017调试浏览器闪退
  12. win8.1 安装.NET Framework3.5
  13. Chrome浏览器Network面板http请求时间分析
  14. POJ 1236 Network of Schools (校园网)
  15. 好程序员大数据视频教程之快速入门Scala篇
  16. JS中函数式编程基本原理简介
  17. 中国程序员VS美国程序员,太形象了...
  18. win7/win10安装Ubuntu20.04双系统详细操作步骤
  19. 基于Vue+ElementUI的省市区地址选择通用组件
  20. 中国气象局陆面数据同化系统CLDAS-V2.0数据

热门文章

  1. 自己制做绿色版VirtualBox
  2. openbox在ubuntu下安装及配置
  3. 密码破解很容易,这是怎么做的
  4. 再次解决,android 2.3运行凯立德问题
  5. 艾媒咨询:2015年中国手机APP市场研究
  6. 利用Matlab进行图像的增强
  7. 腾讯云EMR HUE Openldap 配置
  8. 景观生态学——景观指数计算软件(转)
  9. 腾讯云-云服务器介绍售前常见问题
  10. 搭建一个AdGuard Home私人DNS