我在尝试启用游标时发现了一个奇怪的行为。
这项工作如期待
void Start()
{
Debug.Log("enabled");
Cursor.visible = true;
Cursor.lockState = CursorLockMode.Locked;
Cursor.lockState = CursorLockMode.None;
}
这根本不会
void OnEnable()
{
Debug.Log("enabled");
Cursor.visible = true;
Cursor.lockState = CursorLockMode.Locked;
Cursor.lockState = CursorLockMode.None;
}
同时打印到控制台,但在OnEnabled光标保持隐藏状态,脚本启用
我的最后一次尝试就是这个
void Start()
{
EnableCursor();
}
void EnableCursor()
{
Debug.Log("enabled");
Cursor.visible = true;
Debug.Log(Cursor.visible);
Cursor.lockState = CursorLockMode.Locked;
Cursor.lockState = CursorLockMode.None;
}
同样的工作
但是
void OnEnable()
{
EnableCursor();
}
void EnableCursor()
{
Debug.Log("enabled");
Cursor.visible = true;
Debug.Log(Cursor.visible);
Cursor.lockState = CursorLockMode.Locked;
Cursor.lockState = CursorLockMode.None;
}
无效
答案 0 :(得分:0)
我做了一个快速修复,直到Unity解决了这个问题。
所以代码在这里
public bool enable = false;
void OnEnable()
{
enable = true;
}
void LateUpdate()
{
if (enable)
{
Debug.Log("enabled");
Cursor.visible = true;
Debug.Log(Cursor.visible);
Cursor.lockState = CursorLockMode.Locked;
Cursor.lockState = CursorLockMode.None;
/*Your Cursor changing code*/
}
enable = false;
}
说明:我似乎统一跟踪函数的调用 - 当从OnEnable调用函数时,所有Cursor代码都不起作用。