关于unity3d鼠标箭头Cursor.lockState 不隐藏的问题?

首先先来了解一下 Cursor.lockState 的三种状态

1.CursorLockMode.None 无状态
2.CursorLockMode.Locked 锁定状态
3.CursorLockMode.Confined 限制状态(也就是鼠标只能在游戏界面内移动)

补充:
Cursor.visible 是否显示光标

在使用按键 KeyCode.Escape去触发鼠标的 显\隐 的时候,会出现这个问题,这可能是一个Unity的BUG。(Unity 5.4.6f3 (64-bit))

不过当我,使用了任意一个按键去检测的时候,那个BUG就不见了。例如: KeyCode.P

代码片.

if (Input.GetKeyDown(KeyCode.P))
        {
            isLock = !isLock;
            if (isLock)
            {
                Time.timeScale = 0;
                Cursor.lockState = CursorLockMode.None;
                Cursor.visible = true;
            }
            else
            {
                Time.timeScale = 1;
                Cursor.lockState = CursorLockMode.Locked;
                Cursor.visible = false;
            }
        }

注意

上诉出现的BUG,只是在Unity3d编辑器状态,才出现的BUG。

当你导出游戏项目,在游戏中就不存在上诉情况。

猜你喜欢

转载自blog.csdn.net/weixin_41272879/article/details/85780934