使用Unity事件,变量更改未在Unity3d的更新函数中持久化

56lgkhnf  于 2023-05-01  发布在  其他
关注(0)|答案(1)|浏览(244)

我使用Invoke Unity Events来检测用户是否按下或按住按钮。我可以看到函数正在触发,我将respawnHeld设置为true。然而,更新总是将其记录为false。我完全不知道该怎么办。...我看不出是什么可能将respawnHeld设置回false。

private bool respawnHeld;

    // Update is called once per frame
    void Update()
    {
        Debug.Log($"In Update Function RespawnHeld is {respawnHeld}");
    }

    public void RespawnInput(InputAction.CallbackContext callbackContext)
    {
        Debug.Log("SETTING RESPAWN HELD TO TRUE");
        respawnHeld = true;
        Debug.Log($"In RespawnInput Function RespawnHeld is {respawnHeld}");
    }

按下R键后。我希望看到日志声明“In Update Function RespawnHeld is True”。然而,我得到的日志如下:

任何帮助将是非常感谢!

n6lpvg4x

n6lpvg4x1#

不幸的是,我不能肯定地说是什么解决了这个问题。但在我的例子中,Respawn Input的调用者是一个Unity事件(来自输入系统)。我从我的游戏对象中删除了脚本,然后重新配置了我的所有事件,现在它可以工作了。

相关问题