unity3d - 通过 UI 按钮快速射击问题
问题描述
在此处输入链接描述,因为我是新手,我遇到了 ui 按钮逻辑问题,问题是如果我在 Update 语句中简单地使用语句 if(Input.GetButton("Fire1")) 一切正常意味着敌人在连续射击时受到伤害,但是当我将其转换为(公共功能 Fire )时,我可以使用“事件触发器”通过 Ui 开火按钮使用 Android 平台,然后问题就出现了敌人没有受到任何伤害在连续射击
这是我如何在检查器中通过 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;
}
请注意,它可以双向工作,因此可以使用相同的方法从真到假或从假到真。
推荐阅读
- r - 为什么在 r 中重新采样栅格时会得到 NA 值
- python - 无法在 Tkinter (anaconda) 中配置字体
- r - 使用索引对 data.table 中的行进行子集
- cookies - 如何为访问者提供拒绝 cookie 的选项?
- javascript - 传递正确 ID 的 JavaScript Google 地图和标记
- java - 比较 FileTime 和 LocalDateTime
- r - R:GLM:数据集中不存在因子水平,但我仍然想要系数
- javascript - webstrom2017 conosle.log '123\r123'
- javascript - 鼠标离开时Jquery隐藏下拉菜单
- fiware - 未找到域:未为应用程序创建 AZF 域