如何停止一个方法内部有一个方法?

-2 c# unity-game-engine

基本上,我想在冷却时打破该方法。但是当我将 if 语句移到方法内时,它将不起作用。return 关键字只会返回到前一个方法并继续剩下的部分。有什么办法可以做到吗?

在此输入图像描述

Oli*_*bes 5

让该CooldownCheck方法返回停止状态,例如通过布尔值:

public void Interact()
{
    if (CooldownCheck()) {
        InInteract.Invoke();
        lastCooled = Time.time + cooldown;
    }
}

private bool CooldownCheck()
{
    if (lastCooled <= Time.time) {
        Debug.Log(stuff);
        return true;
    }
    return false;
}
Run Code Online (Sandbox Code Playgroud)

顺便说一句,你的else { return; }没有任何意义,因为任何 void 方法的return;末尾都有一个隐式。return语句不会停止任何事情,它从方法中返回,即此时离开方法并继续运行调用者,即调用者将执行下一条语句。

中断调用者的一种方法是抛出异常。但这在这种情况下似乎不合适。