zl程序教程

您现在的位置是:首页 >  其他

当前栏目

Unity笔记-29-ARPG游戏项目-12-完善弓箭

游戏项目笔记 Unity 12 29 完善
2023-09-11 14:22:30 时间

Unity笔记-29-ARPG游戏项目-12-完善弓箭

之前的文章能够实现基本的弓箭射击,但是不够精准,对于瞄准的方向比较难把握,这里我们完善一下

基本思路

弓箭瞄准

在这里插入图片描述

从此图中可见,对于准星瞄准的不同距离的对象,射出的箭矢应当是不同的速度与轨迹。另外由于箭矢并非从屏幕中央射出而是从右边射出,因此我们需要修正箭矢的运动路径,使其向准星瞄准的对象射击,上一篇文章的方法仅仅只是能够修正箭矢的朝向不断朝向摄像机朝向靠近,没法精确的射击,原因就在于速度的错误把控以及箭矢射击朝向的错误,在上一篇文章中,我们没有去设置箭矢的发射朝向,而是让箭矢根据右手动作朝向射击,却仅仅通过箭矢路径修正去修正箭矢的轨迹,这导致了,在射击较近的目标时,永远无法精准的射中,并且在测试中箭矢的运动轨迹会莫名其妙的向上倾斜

完善思路

箭矢发射的瞬间,计算从右手到准星射线检测到的物体point的向量,并将此向量朝向通过四元数赋予箭矢,使得箭矢朝向这个方向,如果准星射线检测没有检测到物体,那么默认射击从摄像机沿着准星射线方向距离30米或更远目标的point。

并且计算从右手到point的距离,根据距离的不同通过对应的速度函数赋予对应的速度,具体的速度函数需要自行测试和计算