Unity:鼠标【上下左右滑动时】控制相机【左右张望】和【上下抬头】

news/2024/11/30 13:41:30/

相机旋转,看着是小事,但是却关系到用户的直观体验。旋转对了母慈子孝,旋转错了则翻江倒海。

一、功能

鼠标左右移动时,控制相机左右转动
鼠标上下移动时,控制相机抬头低头

二、被GPT带翻的过程

你可以在GPT里提问,他的回答也很给力,能转,但是都不符合人体的看东西的特点。

后来还是的自己写…
本案的相机旋转的关键要点有两个:

  • 1、鼠标左右滑动的时候,相机要围绕这 世界的Y轴 旋转,旋转的中心在相机的原点。
//左右旋转:绕自己的原点旋转,旋转轴为世界的Y轴
this.transform.RotateAround(this.transform.position, axisX,mouseX);//  public Vector3 axisY = new Vector3(1,0,0);

类比:
我虽然是低着头(相机往下看),但是当我东张西望的时候,往东和往西是围绕我站立的Y轴,也就是世界的Y轴,来旋转转的。其他任何旋转方法,都会导致奇怪的效果,不符合人的观察特点。

下图的坐标轴为世界坐标轴。

图中坐标轴为世界坐标轴

- 2、鼠标上下滑动的时候,相机实现抬头和低头的动作,此时相机是绕自己的x轴进行旋转。
类比:把自己的头想象成一个摄像机,抬头和低头时,我们绕的轴是穿过太阳穴的一条线。
//抬头低头:绕自己的轴旋转
transform.Rotate(axisY,mouseY, Space.Self);// public Vector3 axisY = new Vector3(1,0,0);

请添加图片描述

三、代码

using System.Collections;
using System.Collections.Generic;
using UnityEngine;/// <summary>
/// 鼠标左右移动时,控制相机左右转动
/// 鼠标上下移动时,控制相机抬头低头
/// 该脚本挂载到相机Camera上
/// Todo:加入平滑插值或者动画效果
/// </summary>
public class CameraController2 : MonoBehaviour
{/// <summary>/// 鼠标灵敏度/// </summary>[Header("鼠标灵敏度")]public float sensitivity = 100f; // 鼠标灵敏度/// <summary>/// 相机抬头低头的旋转轴/// </summary>[Header("相机抬头低头的旋转轴")]public Vector3 axisY = new Vector3(1,0,0);/// <summary>/// 鼠标X位移映射的旋转轴/// </summary>[Header("鼠标X位移映射的旋转轴")]public Vector3 axisX = new Vector3(0, 1, 0);[Header("0-左键,1-右键,2-中建")][SerializeField]public int buttonIndex = 1;   void Update(){//鼠标按下if (Input.GetMouseButton(buttonIndex)){// 获取鼠标的位置变化delta值float mouseX = Input.GetAxis("Mouse X") * sensitivity * Time.deltaTime;float mouseY = Input.GetAxis("Mouse Y") * sensitivity * Time.deltaTime;//左右旋转:绕自己的点旋转,旋转轴为世界的Y轴this.transform.RotateAround(this.transform.position, axisX,mouseX);//抬头低头:绕自己的轴旋转transform.Rotate(axisY,mouseY, Space.Self);}}
}

http://www.ppmy.cn/news/285102.html

相关文章

架构师要顺应技术的生命周期

在架构设计的过程中&#xff0c;架构师会有一个相对确定的商业和技术选择空间。在这个选择的空间内&#xff0c;架构师做技术选型的时候&#xff0c;必须要考虑到所依赖的商业和技术模块的生命周期。这个时候&#xff0c;我们就需要看准技术趋势&#xff0c;选择已经有规模优势…

罗技M590优联无法使用的问题解决

罗技M590优联无法使用的问题解决 - 知乎 (zhihu.com) ↑大多数人可参考&#xff0c;但我的情况解决不了 刚开始直接插USB使用优联模式没问题&#xff0c;但是设置了蓝牙连接模式后&#xff0c;优联模式失效。 我是遇到了文章内也就是第一个↑这个问题。 然后呢还没检测到我的…

罗技压枪脚本教学(二)

虽然用于游戏不是好东西&#xff0c;但是还是想分享下 前景提示&#xff1a; 发现上次写的已经失效了本文纯属教学&#xff0c;仅涉及初步内容&#xff0c;也不接单 上个脚本没想到两年就过气了&#xff0c;貌似老的LGS还可以用&#xff0c;新的GHUB就不行了&#xff0c;大人…

罗技无线键盘linux,罗技发布旗下第一款无线机械游戏键盘 G613

罗技的机械键盘自 G710 以来已经出了这么多把&#xff0c;唯一众所期待&#xff0c;但罗技就是不推出的&#xff0c;恐怕就是无线的机械键盘了。如今罗技不仅终于满足了我们小小的愿望&#xff0c;而且还顺便补上了六颗 G 键呢。G613 和 G610 / G810 外型相似&#xff0c;但因为…

罗技 连点 脚本_罗技G宣布与《英雄联盟》合作 推出一系列游戏周边产品

10 月 30 日消息 昨天&#xff0c;罗技旗下游戏外设品牌罗技 G 宣布与《英雄联盟》的创作者拳头游戏正式开启为期多年的独家合作。作为合作内容的一部分&#xff0c;罗技 G 将推出一系列官方授权的《英雄联盟》游戏周边产品&#xff0c;其中首款合作产品的灵感来自于在 2020 年…

【2022最新罗技G502吃鸡宏】

罗技G502吃鸡宏 function.sh function.sh ---------------- Basic Variable ----------------------------- ---------------- Do not edit ---------------------local current_weapon "none"---------------- 基本设…

罗技 连点 脚本_轻松办公 如入无人之静 罗技MK295静音键鼠套装全球首发震撼上市...

&#xff08;2020年8月28日&#xff0c;上海讯&#xff09;快节奏的键鼠操作音让上班族时刻神经紧绷&#xff0c;打乱工作节奏。摆脱职场噪音干扰&#xff0c;专注高效办公成为白领们的一大难题。罗技直击白领痛点&#xff0c;推出安静耐用的罗技MK295静音键鼠套装&#xff0c;…

罗技Ghub配置文件压枪编程——仅供学习

罗技Ghub配置文件压枪宏编程——仅供学习 文档和基础C语言基础Lua简单语法G-series Lua API文档G HUB软件 编程实例如何导入配置文件参考 文档和基础 C语言基础 尽管我们基本只需要使用罗技现成的接口简单的编程&#xff0c;但编程所使用的lua脚本语言基于C语言开发&#xff…