内容简介:前面介绍使用子弹来杀伤怪物,但是总是有一个鼠标在界面里显示,这样感觉起来非常不舒服,因为你玩别人的游戏时,发现这个鼠标没有显示的,并且不小心点了别的窗口,也会失去焦点。因此,下面就来解决这个问题。先按下图来创建一个脚本,把脚本的名称叫做:MouseLock,然后命名如下图:
前面介绍使用子弹来杀伤怪物,但是总是有一个鼠标在界面里显示,这样感觉起来非常不舒服,因为你玩别人的游戏时,发现这个鼠标没有显示的,并且不小心点了别的窗口,也会失去焦点。因此,下面就来解决这个问题。先按下图来创建一个脚本,把脚本的名称叫做:MouseLock,
然后命名如下图:
这样就往Scene里添加一个脚本,然后修改Update方法,在里面添加下面的代码:
using System.Collections; using System.Collections.Generic; using UnityEngine; public class MouseLock : MonoBehaviour { // Use this for initialization void Start () { } // Update is called once per frame void Update () { if (Input.GetButtonDown("Fire1")) { Cursor.lockState = CursorLockMode.Locked; Cursor.visible = false; } if (Input.GetKeyDown(KeyCode.Escape)) { Cursor.lockState = CursorLockMode.None; Cursor.visible = true; } } }
脚本代码输入之后,就是创建一个空的游戏对象,以便脚本与场景关联在一起,才可以运行代码,如下图:
这时按play之后,就可以开火,发现鼠标给隐藏了,并且鼠标永远锁定在游戏窗口里了,可以无限地转动,不怕点击到别的窗口了。如果要想把鼠标取消隐藏,只要按下键盘的ESC键,就可以了。
接着下来,我们来看一下代码,
Input.GetButtonDown("Fire1")
这行代码,其实在前面已经使用过,它就是获取开火键,它可以是鼠标左键,也可以是键左ctrl键,也可以是游戏手柄里按键。当你按下鼠标左键时,就会触发这个事件。
接着下来看到这一行:
Cursor.lockState = CursorLockMode.Locked;
Cursor.lockState是表示鼠标是否被锁住,以及它的状态设置。CursorLockMode是一个枚举变量,主要下面三种状态:
None | 光标行为不作修改 |
Locked | 锁住光标在游戏窗口中间。 |
Confined | 限制光标在游戏窗口。 |
接着下来下一行:
Cursor.visible = false;
这一行是设置光标的可见性,设置false为隐藏。
if (Input.GetKeyDown(KeyCode.Escape))
这一行是获取键盘的ESC键是否按下,如果按下就取消鼠标隐藏,如下:
Cursor.lockState = CursorLockMode.None;
Cursor.visible = true;
通过这样的代码设置,就可达到隐藏鼠标,或者显示出来。
boost库入门基础
http://edu.csdn.net/course/detail/5029
Arduino入门基础
http://edu.csdn.net/course/detail/4931
Unity5.x游戏基础入门
http://edu.csdn.net/course/detail/4810以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 儿童游戏软件中隐藏着Tekya木马风险预警
- 游戏开发经验谈(一):游戏架构里隐藏的五个坑及其应对方案 | U刻
- 揭开隐藏算法的神秘面纱
- 2B产品的隐藏陷阱:销售驱动
- 应急响应之 Linux 下进程隐藏
- 隐藏在浏览器背后的 “黑手”
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Markdown 在线编辑器
Markdown 在线编辑器
UNIX 时间戳转换
UNIX 时间戳转换