我希望在游戏运行时将光标设置为不可见并锁定在屏幕中间,但是当在库存或菜单中时,我希望光标可见并解锁。我做了类似的事情:
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编辑器中运行它的事实)并且它表现得很奇怪。 我应该每帧都调用一次,还是用错了什么?
答案 0 :(得分:1)
您的更新循环是否会抛出一个未被捕获的错误并阻止您的逻辑运行?我们看到了一些问题,其中发生了错误,但没有出现在控制台中,我们试着抓住整个更新块,并从那里缩小范围。
答案 1 :(得分:1)
所有光标内容必须发生在" OnGUI"你的脚本的方法。 例如:
void OnGUI()
{
Cursor.visible = false;
Cursor.lockState = CursorLockMode.Locked;
}