gpt4 book ai didi

unity3d - 间歇性多次输入触发 Action

转载 作者:行者123 更新时间:2023-12-02 03:34:13 25 4
gpt4 key购买 nike

无法找出导致间歇性错误的原因。问题是有时“explosionA”动画会在按住 A 键或快速按下时触发多次,但并非总是如此。

void Start() {
aUsable = true;
aCooldown = 0.5f;
aTimer = 0;
}

void Update () {
CooldownManager();
Cast();
}

void Cast() {
if (Input.GetKey(KeyCode.A) && aUsable){
spell.SetTrigger("explosionA");
aUsable = false;
}
}

void CooldownManager() {
if (Time.time > aTimer){
aUsable = true;
aTimer = Time.time + aCooldown;
}
}

最佳答案

问题是,即使 aUsable bool 值已经为真,CooldownManager 也会被调用,并且当 Time.time 非常接近 aTimer 时,法术可能会被触发,因此在允许下一个法术触发之前耗时是小于 aCooldown 的“aTimer - Time.time”。

要修复它,您可以这样做:

void Cast() {
if (Input.GetKey(KeyCode.A) && aUsable){
spell.SetTrigger("explosionA");
aUsable = false;
aTimer = Time.time + aCooldown;
}
}

void CooldownManager()
{
if (!aUsable && Time.time >= aTimer)
{
aUsable = true;
aTimer = Time.time + aCooldown;
}
}

这应该会为您提供正确的法术触发频率。

我希望这会修复您的错误。罗伯托

关于unity3d - 间歇性多次输入触发 Action ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24793897/

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