📜  unity 鼠标锁 - C# (1)

📅  最后修改于: 2023-12-03 15:20:53.674000             🧑  作者: Mango

Unity 鼠标锁 - C#

介绍

在使用 Unity 进行游戏开发时,我们通常会需要控制游戏中的鼠标行为。有时候需要锁定鼠标在屏幕中心,有时候需要解锁以允许用户进行菜单操作等等。本文将探讨如何使用 C# 在 Unity 中控制鼠标锁定。

鼠标锁定

鼠标锁定功能是将鼠标光标固定在屏幕中心点,即使用户移动鼠标,光标不会移动。这种控制鼠标的行为主要用于一些FPS游戏等,以保证在游戏中用户可以通过移动鼠标来控制视野,而不影响游戏。

Unity中默认是没有锁定鼠标的。若需要控制鼠标锁定,只需在代码中调用 Cursor.lockStateCursor.visible 属性。Cursor.lockState 确定鼠标的锁定方式,Cursor.visible 则设置鼠标的可见性。

锁定鼠标

使用以下代码来锁定鼠标:

Cursor.lockState = CursorLockMode.Locked;
Cursor.visible = false;

这样,鼠标光标就会被固定在屏幕中心,并且此时鼠标光标不可见。

解锁鼠标

使用以下代码来解锁鼠标:

Cursor.lockState = CursorLockMode.None;
Cursor.visible = true;

这样,鼠标光标就会恢复正常,并且此时鼠标光标可见。

示例

下面是一个简单的示例,演示如何控制鼠标锁定。

using UnityEngine;

public class MouseLock : MonoBehaviour
{
    void Update()
    {
        if (Input.GetKeyDown(KeyCode.Escape))
        {
            UnlockCursor();
        }

        if (Input.GetMouseButtonDown(0))
        {
            LockCursor();
        }
    }

    void LockCursor()
    {
        Cursor.lockState = CursorLockMode.Locked;
        Cursor.visible = false;
    }

    void UnlockCursor()
    {
        Cursor.lockState = CursorLockMode.None;
        Cursor.visible = true;
    }
}

在这个示例中,按下 Escape 键将解锁鼠标,按下左键将锁定鼠标。在 Update 方法中,我们检查输入,然后调用相应的方法以控制鼠标锁定。

以上是Unity中如何通过C#控制鼠标锁定,希望对开发者有所帮助。