通过UI按钮快速发射问题



输入链接描述因为我是新手,所以ui按钮逻辑有问题,问题是如果我在Update语句中简单地使用语句if(Input.GetButton("Fire1"((,一切都很好,这意味着敌人在连续射击中受到了伤害,但当我将其转换为(公共函数Fire(时,我可以通过使用对于andriod平台的"事件触发",那么问题就出现了,敌人在连续发射时没有受到任何伤害

这是我如何在检查器中通过UI实现的代码和图片

function Update(){
if(firing==true){
Fire();
}
}

public function Fire(){

firing=true;

if(AK47Ammo.CurrentAmmo>=1)
{
if(Firing==0)
{
AK47Firing();
}
}
}

public function notFiring(){
firing=false;
}

function AK47Firing()
{
nextFire=Time.time+fireRate;
anim.SetBool("Fire",true);
AK47Ammo.CurrentAmmo -= 1;

gunSound.Play();
Flash.SetActive(true);
(MuzzleOff());
var hitShot:RaycastHit;
if(Physics.Raycast(transform.position,transform.TransformDirection(Vector3.forward)*100,hitShot))
{
hitShot.transform.SendMessage("DeductPoints",DamageAmount,SendMessageOptions.DontRequireReceiver );    
}                
}
function MuzzleOff()
{
Firing=1;
yield WaitForSeconds(0.2);
Firing=0;
var ps: ParticleSystem = GetComponent.<ParticleSystem>();
ps.Stop();
Flash.SetActive(false);
Shell.SetActive(false); 
}  

我不确定javascript中的语法,但您可能需要创建一个方法,在事件触发器上将激发从true翻转为false。像这样:

public void AutoFireToggle()
{
firing = !firing;
}

请注意,它是双向工作的,因此使用相同的方法可以从true变为false或从false变为true。

最新更新