上一节将UI简单的布置了一下,下面来实现UI中当前子弹数和总子弹数和脚本的数据绑定,并且发射子弹要朝着准星的位置发射
1:子弹和显示UI的子弹数的实现思路:在枪攻击的脚本里添加当前子弹数和背包子弹数两个变量,在发射子弹后当前弹夹子弹数减1,并且将当前子弹数显示到UI上
下面看代码
射击后子弹数减1,并且下面直接调用UI显示,这样就形成了数据绑定,使得UI的子弹数和脚本的子弹数保持一致
//弹夹内子弹数
[SerializeField]
private int currentBullets=30;
//剩余子弹数
[SerializeField]
private int surPlusBullets=120;
//射击方法
private void Shoot()
{
if (Input.GetMouseButtonDown(0) || Input.GetMouseButton(0))
{
//判断子弹是否够用
if (currentBullets <= 0) {
//更换弹夹
swapClip();
return;
}
//设置开枪间隔时间是0.1秒,换弹夹的时候不能开枪
if (Time.time - timer > 0.1&& !animator.GetBool("SwapClip"))
{
//开枪音效
ShootAudio.Play();
//开枪动画
animator