【发布时间】:2015-07-07 21:07:53
【问题描述】:
我想在游戏运行时将光标设置为不可见并锁定在屏幕中间,但在库存或菜单中时我希望光标可见并解锁。我做了这样的事情:
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 编辑器中运行它),而且它的行为很奇怪。 我应该每帧都调用它还是我用错了?
【问题讨论】:
-
尝试每帧调用一次?也许您在其他地方的代码正在设置光标锁定状态?您是否尝试过每帧记录 Cursor.lockState 等的状态?
-
我把它称为everyframe,但也没有用。但我感觉有些不对劲——菜单没有正确暂停我的游戏。也许这里有错误,但我不这么认为,所以如果有人知道如何解决,请回答。
-
你检查 if 语句吗?我认为输入登录语句以查看它的应用程序是否正确到达它。
-
我将 print () 放在其中一个 if 语句中,它打印了我想要的内容,但光标可见性无法正常工作。
标签: c# unity3d cursor mouse visibility