📜  mouselook 脚本统一 - C# (1)

📅  最后修改于: 2023-12-03 14:44:23.918000             🧑  作者: Mango

Mouselook 脚本统一 - C#

简介

Mouselook 是一种常见的人物视角控制技术,它让玩家通过鼠标控制游戏角色在游戏中转眼望向不同方向。

这篇文章旨在以 C# 为主语言,介绍 Mouselook 脚本的编写和使用,帮助游戏开发者为自己的游戏添加这一特性。

概述

Mouselook 基于 Unity 的输入系统实现,通过鼠标控制游戏角色的视角。实现过程中,需要借助两个类:InputTransform

Unity 输入系统

Unity 的输入系统通过静态类 Input 来实现。开发者可以通过 Input 类获取按键或者鼠标的输入状态。例如,Input.GetMouseButton() 可以获取鼠标按键的输入状态。

另外,开发者可以通过 Unity 的编辑器,配置输入映射表。例如,可以将鼠标的 X 轴移动与角色的 Yaw 方向相映射。这样,当鼠标在 X 轴移动时,就可以改变角色的朝向。配置输入映射表的方法如下:

  1. 打开 Edit 菜单
  2. 选择 Project Settings
  3. 在下拉菜单中选择 Input Manager

Input Manager 中,可以配置输入的名称,对应的按键,对应的轴以及对应轴的灵敏度。

Transform 接口

在 Mouselook 实现中, Transform 接口主要用于设置游戏角色的旋转和位置。 Transform 接口是 Unity 中的一个核心接口,提供移动、缩放、旋转等多种操作。

在 Mouselook 中,通过 transform.Rotate() 方法改变游戏角色的朝向。例如:

transform.Rotate(Vector3.up * mouseX * sensitivity);

其中 Vector3.up 表示绕 Y 轴旋转,mouseX 表示鼠标 X 轴移动的大小,sensitivity 表示灵敏度。

编写 Mouselook 脚本
脚本概述

在开始编写脚本之前,我们需要确定脚本需要完成的任务:

  1. 获取鼠标输入
  2. 根据鼠标输入计算角色旋转的量
  3. 将旋转量应用到角色上

脚本的核心代码如下:

using UnityEngine;

public class Mouselook : MonoBehaviour
{
    [SerializeField] private float _sensitivity = 3f;

    private void Update()
    {
        float mouseX = Input.GetAxis("Mouse X");

        transform.Rotate(Vector3.up * mouseX * _sensitivity);
    }
}
代码解释

上述代码中,我们定义了一个 Mouselook 类,该类继承自 MonoBehaviour

在脚本中,我们声明了一个 _sensitivity 变量,用于控制旋转的灵敏度。

Update 方法中,我们调用了 Input.GetAxis("Mouse X"),获取鼠标 X 轴的移动量。然后通过 transform.Rotate() 方法,将 mouseX 乘上 _sensitivity,将旋转量应用到游戏角色上。

总结

以上就是 Mouselook 脚本的编写和使用方法。通过阅读本文,您应该已经掌握了如何使用 Unity 的输入系统和 Transform 接口实现 Mouselook 的方法。