EASY Manoeuvre FPS使用 (七)游戏进行时在场景切换鼠标显示与否

1 首先进入场景是隐藏鼠标的,并且限定鼠标在游戏区域移动。当暂停时页面需要显示鼠标方便操作。返回继续游戏时又要隐藏鼠标。储存游戏进度时也需要对鼠标进行如此这般操作。

2 在gamemanager里设置bool参数来设定鼠标的隐藏与否。

在GameManager脚本添加MouseCursor方法,并且在Update里运行


 //鼠标显示隐藏
    public void MouseCursor()
    {
        if (isLock)
        {
            //鼠标限定在 game Window
            Cursor.lockState = CursorLockMode.Confined;
            Cursor.lockState = CursorLockMode.Locked;
        }
        else
        {
            Cursor.lockState = CursorLockMode.None;
        }
        //设置鼠标样式
        //Cursor.SetCursor(cursorTexture, Vector2.zero, CursorMode.Auto);
        
        //按键控制鼠标是否显示
        if (Input.GetKeyDown(KeyCode.M))
        {
            isLock = true;
        }
        if (Input.GetKeyDown(KeyCode.K))
        {
            isLock = false;
        }
        
    }

但是鼠标在移动之后却不断显示,必须找出原因,原来是另一个脚本在键盘移动的时候指示了鼠标的显示,找出来并制止它!
问题根源很难找啊,好不容易发现了ManoeuvreFPSController脚本下第686行
camController.ToggleCursor(camController.hideCursor);
只要注释掉就不会显示鼠标

就在这时发生了射击异常报错
uzAIZombieStateManager脚本
第505行

            if (ZombieHealthStats.fadeZombieMesh)
            {
                //set all the materials to Fade
                foreach (Renderer r in ZombieHealthStats.allRenderers)
                { 
                    //assign it to the renderer
                    //注释掉下面这句
                    //r.material.shader = ZombieHealthStats.faderMaterial.shader;
                }
            

当储存和读取过后,鼠标又显示出来了,来修改一下控制UI界面的脚本SaveUIController里的Update()就OK没问题了

private void Update()
        {

            if (isOpen)
            {
                //鼠标解锁
                GameManager._instance.isLock = false;
                return;
            }
            else
            {
                //鼠标解锁
                GameManager._instance.isLock = true;
            }
                

            if (ManoeuvreFPSController.Instance.Inputs.pauseInput)
                OpenPauseMenuUI();
        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值