射击是FPS游戏中最重要的一环,如果实现一个简单的射击效果呢,来跟我一起学习一下吧
射击元素:
- 枪口
枪口决定了一个子弹初始时的位置和方向,可以使用一个空物体来代替,放置在射出子弹的位置, - 子弹
射击肯定需要子弹才能够完成整个射击的过程,在游戏设置时可以将子弹设为预制体
子弹:
- 子弹的几个特殊的地方,首先就是速度比较高,这个时候对于碰撞检测的方式就很重要了,要选择连续动态检测,这样才不会出现正好穿过检测间隔没有触发碰撞检测的情况(也可以使用射线检测)。然后子弹有穿透性,所以要根据实际情况勾选Is Trigger。最后保证子弹上面有刚体组件,模拟物理特性的同时,也可以使用velocity为其赋予速度
实现过程:
首先在脚本中获取枪口的位置,在该位置用Instantiate实例化一个子弹,并且方向与枪口方向保持一致
接下来要给子弹一个初速度,使其能够被射击出去。首先确保复制的子弹有刚体组件,然后通过velocity为其赋予速度:
Velocity:
- 注意使用velocity给与一个刚体速度时,速度方向使用的是世界坐标,所以在本例子中,需要将枪口的本地坐标转换为世界坐标,转换的函数为:transform.TransformDirection(