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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/caimouse/article/details/82453599

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

猜你喜欢

转载自blog.csdn.net/caimouse/article/details/82453599