Unity3D 鼠标光标可见性 - C#

Unity3D mouse cursor visibility - C#

我想在游戏 运行ning 时将光标设置为不可见并锁定在屏幕中间,但在库存或菜单中时我希望光标可见并解锁。我做了类似的东西:

if (tribe == game) {
            Cursor.lockState = CursorLockMode.Locked;
            Cursor.visible = false;
            Time.timeScale = 1;
        } else if (tribe == menu) {
            Cursor.lockState = CursorLockMode.Confined;
            Cursor.visible = true;
            Time.timeScale = 0;
        } else if (tribe == inventory) {
            Cursor.lockState = CursorLockMode.Confined;
            Cursor.visible = true;
            Time.timeScale = 0;
        }

条件设置正确并有效(除非我应该在每一帧中调用它),但锁定状态和可见性存在问题。有时有效,有时无效(可能是由于我在 Unity 编辑器中 运行 它造成的)并且它的行为很奇怪。 我应该每帧都调用它还是我用错了还是怎么的?

您的更新循环是否会抛出一个未被捕获的错误并阻止您的逻辑 运行?我们看到了一些发生错误但未在控制台中显示的问题,我们在整个更新块周围放置了一个 try catch 并从那里缩小了范围。

所有光标内容都必须发生在脚本的 "OnGUI" 方法中。 例如:

void OnGUI()
{
    Cursor.visible = false;
    Cursor.lockState = CursorLockMode.Locked;
}