Unity 的鼠标查找脚本

下面的脚本支持鼠标驱动的旋转运动,并带有用于同时控制 X 轴、Y 轴或两者的选项。非常适合在 Unity 项目中创建沉浸式 角色控件 或动态 相机视角 。自定义灵敏度和旋转限制,根据您的特定需求定制体验。

脚步

  • 创建 一个新脚本,将其命名为 'SC_MouseLook',然后将以下代码粘贴到其中。

'SC_MouseLook.cs'

using UnityEngine;

public class SC_MouseLook : MonoBehaviour
{
    public enum RotationAxes { MouseXAndY = 0, MouseX = 1, MouseY = 2 }
    public RotationAxes axes = RotationAxes.MouseXAndY;
    public float sensitivityX = 15F;
    public float sensitivityY = 15F;

    public float minimumX = -360F;
    public float maximumX = 360F;

    public float minimumY = -60F;
    public float maximumY = 60F;

    float rotationY = 0F;

    void Update()
    {
        if (axes == RotationAxes.MouseXAndY)
        {
            float rotationX = transform.localEulerAngles.y + Input.GetAxis("Mouse X") * sensitivityX;

            rotationY += Input.GetAxis("Mouse Y") * sensitivityY;
            rotationY = Mathf.Clamp(rotationY, minimumY, maximumY);

            transform.localEulerAngles = new Vector3(-rotationY, rotationX, 0);
        }
        else if (axes == RotationAxes.MouseX)
        {
            transform.Rotate(0, Input.GetAxis("Mouse X") * sensitivityX, 0);
        }
        else
        {
            rotationY += Input.GetAxis("Mouse Y") * sensitivityY;
            rotationY = Mathf.Clamp(rotationY, minimumY, maximumY);

            transform.localEulerAngles = new Vector3(-rotationY, transform.localEulerAngles.y, 0);
        }
    }

    void Start()
    {
        // Make the rigid body not change rotation
        if (GetComponent<Rigidbody>())
            GetComponent<Rigidbody>().freezeRotation = true;
    }
}
  • 'SC_MouseLook' 脚本附加到Unity 中的游戏对象或相机。
  • Inspector 中选择旋转轴(“MouseXAndY”、"MouseX" 或 "MouseY")。
  • 使用 "sensitivityX" 和 "sensitivityY" 参数微调鼠标灵敏度。
  • (可选)使用 "minimumX"、"maximumX"、"minimumY" 和 "maximumY" 设置旋转约束。
  • 根据您的项目要求自定义其他参数。
  • 进入Play模式来测试和观察鼠标驱动的相机运动。
  • 调整灵敏度和旋转约束以获得所需的行为。
  • 将带有 'SC_MouseLook' 的游戏对象集成到更大的 Unity 项目 中。
推荐文章
Zone Controller Pro - Unity Asset Store 包
如何在 Unity 中使用新的 HDRP 水系统
FPC Swimmer - 用于沉浸式水环境的综合 Unity 资产
Ultimate Spawner 2.0 - 改变游戏规则的资产
Weather Maker - 将 Unity 环境提升到新高度
如何在 Unity 中使用 Xbox 控制器
在 Unity 中创建灯开关的脚本