enter link description here因为我是新手,所以我在使用ui按钮逻辑时遇到问题,问题是如果我在更新语句中简单地使用if(Input.GetButton(“ Fire1”))语句,则一切都是工作正常意味着敌人在连续射击中受到了伤害,但是当我将其转换为(公共功能射击)时,我可以通过带有“事件触发器”的Ui射击按钮对人造平台使用,那么问题就是敌人是连续射击不会造成任何伤害
这是我如何通过检查器中的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);
}
答案 0 :(得分:0)
我不确定javascript中的语法,但是您可能需要制作一个在事件触发器上将触发从true转换为false的方法。像这样:
public void AutoFireToggle()
{
firing = !firing;
}
请注意,它可以双向工作,因此使用相同的方法可以从true变为false或从false变为true。