Unity3D鼠标光标可见性 - C#

时间:2015-07-07 21:07:53

标签: c# unity3d cursor mouse visibility

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

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编辑器中运行它的事实)并且它表现得很奇怪。 我应该每帧都调用一次,还是用错了什么?

2 个答案:

答案 0 :(得分:1)

您的更新循环是否会抛出一个未被捕获的错误并阻止您的逻辑运行?我们看到了一些问题,其中发生了错误,但没有出现在控制台中,我们试着抓住整个更新块,并从那里缩小范围。

答案 1 :(得分:1)

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

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