一、前言
武器系统的开发(枪械类、换弹操作、添加开枪动画、子弹、具体枪械、装弹动画等)
二、前期知识
由于武器有不同种,枪、刀,所以用weapon武器作为接口
三、武器系统的实现
枪械类
1、创建IWeapon脚本作为武器接口,脚本是用来攻击敌人
public abstract class IWeapon : MonoBehaviour
{
public abstract void DoAttack();
}
2、创建枪械类Firearms,是一种挂件,挂在object上,还要接口IWeapon,且含有DoAttack()
攻击方法
- 由于需要打出子弹的效果,所以首先获取枪口的位置
public Transform MuzzlePoint;
- 子弹从弹壳中打出,所以获取打出的位置
public Transform CasingPoint;
- 开枪会显示枪焰,用粒子来做
public ParticleSystem MuzzleParticle;
- 抛出弹壳需要用粒子来做,避免太多的实例化过程
public ParticleSystem CasingParticle;
- 增加一个弹夹,并设置弹夹容纳的子弹
public int AmmoInMag = 30;
- 设置每把枪最多携带的子弹数
public int MaxAmmoCarried = 120;
- 由于不知道是具体是哪种枪发射子弹,且不用的枪子弹也不同,有的是散射而出,有的是直接发出,所以
protected abstract void Shooting();
- 上膛加子弹
protected abstract void Reload();
- 在
DoAttack()
攻击方法中调用Shooting()
方法
3、实现子弹在弹夹内数量射击
(1)新建变量CurrentAmmo和CurrentMaxAmmoCarried,分别为当前弹夹内的子弹数量和可携带的最大子弹数量
(2)设置何时可以进行射击
public void DoAttack()
{
if(CurrentAmmo<=