游戏制作之路(18)隐藏游戏里的鼠标

栏目: 后端 · 发布时间: 6年前

内容简介:前面介绍使用子弹来杀伤怪物,但是总是有一个鼠标在界面里显示,这样感觉起来非常不舒服,因为你玩别人的游戏时,发现这个鼠标没有显示的,并且不小心点了别的窗口,也会失去焦点。因此,下面就来解决这个问题。先按下图来创建一个脚本,把脚本的名称叫做:MouseLock,然后命名如下图:

前面介绍使用子弹来杀伤怪物,但是总是有一个鼠标在界面里显示,这样感觉起来非常不舒服,因为你玩别人的游戏时,发现这个鼠标没有显示的,并且不小心点了别的窗口,也会失去焦点。因此,下面就来解决这个问题。先按下图来创建一个脚本,把脚本的名称叫做:MouseLock,

游戏制作之路(18)隐藏游戏里的鼠标

然后命名如下图:

游戏制作之路(18)隐藏游戏里的鼠标

这样就往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;
        }
    }
}

脚本代码输入之后,就是创建一个空的游戏对象,以便脚本与场景关联在一起,才可以运行代码,如下图:

游戏制作之路(18)隐藏游戏里的鼠标

这时按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;

通过这样的代码设置,就可达到隐藏鼠标,或者显示出来。


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

跨平台桌面应用开发:基于Electron与NW.js

跨平台桌面应用开发:基于Electron与NW.js

【丹】Paul B. Jensen / Goddy Zhao / 2018-3 / 99

《跨平台桌面应用开发:基于Electron与NW.js》是一本同时介绍 Electron和 NW.js的图书,这两者是目前流行的支持使用 HTML、CSS 和 JavaScript 进行桌面应用开发的框架。书中包含大量的编码示例,而且每个示例都是五脏俱全的实用应用,作者对示例中的关键代码都做了非常详细的解释和说明,可让读者通过实际的编码体会使用这两款框架开发桌面应用的切实感受。除此之外,在内容上,......一起来看看 《跨平台桌面应用开发:基于Electron与NW.js》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具