gpt4 book ai didi

c# - 充电能量并在按住鼠标按钮时释放它

转载 作者:太空宇宙 更新时间:2023-11-03 22:30:09 25 4
gpt4 key购买 nike

我需要积累一定的能量并在松开鼠标按钮时释放它。现在,当能量水平达到最大值时,能量水平被设置为 0,并且该函数刚刚重新开始从头开始累加,从而创建一个循环。

IEnumerator AttackCharge()
{
while (true)
{
if (Input.GetMouseButton(1) && energyLevel < energyMax)
{
energyLevel += 1;

yield return new WaitForSeconds(playRate);
}

if (Input.GetMouseButtonUp(1))
{
if (energyLevel == energyMax)
{
FxPlayerAttack.Stop();
FxPlayerAttack.Play();
shootSound.PlayOneShot(attackSound);

GetComponentInChildren<ParticleCollision>().attackValue = energyLevel;
yield return new WaitForSeconds(2);

energyLevel = 0;
GetComponentInChildren<ParticleCollision>().attackValue = energyLevel;
}

if (energyLevel < energyMax)
{
yield return new WaitForSeconds(2);
energyLevel = 0;
}
}
yield return null;
}
}

我需要在按住按钮时积累能量。当按钮为 Up 时,能量应在充电阶段达到最大值时释放,能量水平应返回 0 并停止累积,直到再次按下按钮。

最佳答案

GetMouseButtonUp 仅在释放按钮的单帧 上返回 true。然后您的代码yield

让我们走一遍:

if (Input.GetMouseButton(1) ...

用户为了攻击而松开了鼠标,所以这是错误的。

else {
yield return null;
}

所以你屈服并等待下一帧。然后当执行恢复时:

if (Input.GetMouseButtonUp(1))

这是错误的,因为用户在最后 帧释放了鼠标按钮。您应该将整个 block 嵌套在 yield return null 行的 else 语句中。

关于c# - 充电能量并在按住鼠标按钮时释放它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58311967/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com