基本上,我想在冷却时打破该方法。但是当我将 if 语句移到方法内时,它将不起作用。return 关键字只会返回到前一个方法并继续剩下的部分。有什么办法可以做到吗?
让该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语句不会停止任何事情,它从方法中返回,即此时离开方法并继续运行调用者,即调用者将执行下一条语句。
中断调用者的一种方法是抛出异常。但这在这种情况下似乎不合适。