Alp*_*Joe 3 c# unity-game-engine
玩家是一个魔术师,当按下鼠标左键时可以用火球攻击敌人.
我使用的代码非常简单(在Update函数内部):
if (Input.GetMouseButton(0) && canShoot)
{
canShoot = false;
Invoke("AllowCanShoot", fireBreak);
Attack();
}
Run Code Online (Sandbox Code Playgroud)
canShoot是一种bool阻止玩家每帧攻击一次的东西.
AllowCanShoot是设定功能canShoot来true.
Attack() 是处理攻击的功能,与此问题无关.
当玩家靠近交易者时,我还有一个UI按钮出现在屏幕上.当玩家按下UI按钮时,他会攻击交易者.
我想要的是,他可以按下按钮而不会攻击他.
我不能禁用对玩家的攻击,因为敌人也可以到达交易者,然后玩家可能必须进行战斗.
我尝试的是:
canShoot bool为false,当UI Button按下时,但这不起作用,播放器仍在攻击,也许Update函数在UI Button函数之前执行?!您可以使用该EventSystem.IsPointerOverGameObject()功能确保在攻击之前鼠标不在UI对象上:
if (Input.GetMouseButton(0) && canShoot && !EventSystem.current.IsPointerOverGameObject())
{
canShoot = false;
Invoke("AllowCanShoot", fireBreak);
Attack();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1021 次 |
| 最近记录: |