Unity 关于Input类的使用

Input类在我们游戏开发中需要获取外设设备(比如键盘、鼠标、游戏手柄等)进行交互时,基本都会用到。

它主要有以下一些常用的方法。

1、GetKey(KeyCode key),检测按键是否被按下;

2、GetKeyDown(KeyCode key),检测按键被按下的那一帧;

3、GetKeyUp(KeyCode key),检测按键被释放那一帧;

其中,第一个方法和后面方法是有一定区别的,GetKey方法,在按键被按下期间它会持续返回true,所以比较适合需持续响应按键输入的情况,比如角色的移动;而GetKeyDown和GetKeyUp方法只有在被按下或放开那一帧返回True,只响应一次,比较适合发射子弹或者跳跃这种。

对于KeyCode这个枚举参数,官方定义了很多。

但我们比较常用的是这些:

  • KeyCode.A, KeyCode.B, KeyCode.C, ... KeyCode.Z: 字母按键;
  • KeyCode.Alpha0, KeyCode.Alpha1, KeyCode.Alpha2, ... KeyCode.Alpha9: 数字键按键;
  • KeyCode.Space: 空格键。
  • KeyCode.Return: 回车键。
  • KeyCode.Escape: Esc键。
  • KeyCode.LeftShift, KeyCode.RightShift: Shift键。
  • KeyCode.LeftControl, KeyCode.RightControl: Control键。
  • KeyCode.LeftAlt, KeyCode.RightAlt: Alt键。
  • KeyCode.LeftArrow, KeyCode.RightArrow, KeyCode.UpArrow, KeyCode.DownArrow: 方向键。
  • KeyCode.F1, KeyCode.F2, KeyCode.F3, ... KeyCode.F12: 功能键。

4、 GetButton(string buttonName),检测指定虚拟按键是否被按下;

5、GetButtonDown(string buttonName),检测指定虚拟按键被按下的那一帧;

6、GetButtonUp(string buttonName),检测指定虚拟按键被释放那一帧;

上面三种方法是检测虚拟按键的方法,其中 GetButton也是细腻按键按下时,持续返回True,比较适合奔跑或射击,而GetButtonDown和GetButtonUp只有在按下或弹开那一帧返回True,GetButtonDown比较适合打开菜单,使用特殊技能这些,GetButtonUp比较适合停止奔跑,切换武器这些。

7、GetAxis(string axisName),获取指定虚拟轴的值;

8、GetAxisRaw(string axisName);获取指定虚拟轴的原始值,该方法返回的值只有-1、0、1三个可能的取值。

其中GetAxis和GetAxisRaw有区别的,GetAxi返回的数值是根据输入变化而返回平滑过渡的一系列数值。而GetAxisRaw根据取值范围,直接映射,返回-1、0、1,中间没有过渡。所以GetAxis比较适合平滑过渡的情况,如角色移动,相机旋转;而GetAxisRaw应用在更直接和灵敏的情况,比如跳跃,攻击。

设备虚拟键盘的映射可在Edit-Input Manager里面设置和查看。

除了上面的方法,还有一些跟鼠标相关的常见应用方法:

1、Input.mousePosition,取当前鼠标在屏幕上的位置,返回一个 Vector3 类型的坐标;

2、Input.GetMouseButtonDown(int button),检测鼠标按下那一帧;

3、Input.GetMouseButton(int button),检测鼠标按下;

4、Input.GetMouseButtonUp(int button),检测鼠标释放那一帧;

其中,参数 button 表示鼠标按钮的索引,0 表示左键,1 表示右键,2 表示中键。

5、Input.GetAxis("Mouse X"),Input.GetAxis("Mouse Y"),获取鼠标在水平和垂直方向上的移动距离,返回一个浮点数。

6、Input.GetAxis("Mouse ScrollWheel"),获取鼠标滚轮的滚动量,返回一个浮点数。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/173332.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于helm的方式在k8s集群中部署gitlab - 升级(三)

接上一篇 基于helm的方式在k8s集群中部署gitlab - 部署(一),本篇重点对gitlab在k8s集群中进行升级 文章目录 1. gitlab 升级1.1 获取release1.2 下载目前版本的gitlab charts1.3 获取当前的values文件1.4 升级 2. gitlab数据库升级2.1 备份数…

SSRF漏洞防御:黑白名单的编写

文章目录 SSRF漏洞防御:黑白名单的编写黑名单的制作白名单的制作 SSRF漏洞防御:黑白名单的编写 以pikachu靶场中SSRF(crul)为例我们可以看到未做任何防御 我们查看源代码 黑名单的制作 思路: 什么内容不能访问 构造代码 $xyarray("file" > "",&q…

bmp文件操作和详解

一 BMP文件格式 BMP(Bitmap)是Windows操作系统中的标准图像文件格式。 由于windows操作系统的发布时机远早于Linux、Android、IOS等操作系统,因此windows中很多数据格式和算法的标准也是当今所有操作系统必须要兼容的标准数据结构和算法。BM…

ubuntu下载vscode并运行程序

如有帮助点赞收藏关注! 如需转载,请注明出处! 好久没有在linux下编译c代码了,由于换了酷炫彩灯的电脑。又要重新安装一次喽。做个记录,可以帮助到有需要的人,接下来不要错过每一个步骤。 我们一起手把手运行…

虹科方案 | 如何破解CAN与车载以太网之间数据传输和协议转换的难题?

导读:在车辆网络时代,数据传输和协议转换在通信领域中扮演着至关重要的角色。它们不仅能够实现车辆内部系统之间的互联互通,还支持车辆与外部网络进行通信,从而为驾驶者带来更智能、便捷的驾驶体验。本文将介绍CAN总线与车载以太网…

3.数据结构

3.1 数据结构分类 常见的数据结构包括数组、链表、栈、队列、哈希表、树、堆、图,它们可以从“逻辑结构”和“物理结构”两个维度进行分类。 3.1.1逻辑结构:线性与非线性 逻辑结构揭示了数据元素之间的逻辑关系。在数组和链表中,数据按照…

大公司为什么喜欢centos系统写爬虫?

CentOS是一个基于Red Hat Enterprise Linux(RHEL)源代码构建的开源操作系统,它受到大企业喜欢大多数因为他系统的稳定性,安全性以及兼容性等。可以为企业提供更多的商业支持。以我个人为例,公司在做爬虫数据抓取多是采…

王者小游戏作业

一、创建好文件、包、类、插入图片文件夹 二、beast包 1、Bear类 package beast; import sxt.GameFrame; public class Bear extends Beast {public Bear(int x, int y, GameFrame gameFrame) {super(x, y, gameFrame);setImg("C:\\Users\\陆先生\\Desktop\\王者荣耀图片…

前置任务之安装jdk

已经安装过很多次了,但是每次安装都要搜好几次才能找到正确的,离大谱。 1.打开 oracle官网 https://www.oracle.com 然后切换到Java archive 下载192版本的,页面搜索ctrlF,【Java SE Development Kit】或者【jdk-8u192-windows-…

深入理解Transformer,兼谈MHSA(多头自注意力)、LayerNorm、FFN、位置编码

Attention Is All You Need——集中一下注意力 Transformer其实不是完全的Self-Attention结构,还带有残差连接、LayerNorm、类似1维卷积的Position-wise Feed-Forward Networks(FFN)、MLP和Positional Encoding(位置编码&#xf…

ChatGPT进阶:提示工程的神秘面纱与实战指南

文章目录 一、提示工程的概念与原理二、提示工程的实践方法三、提示工程的挑战与展望四、实战案例分析总结《ChatGPT进阶:提示工程入门》内容简介作者简介陈颢鹏:李子菡: 目录获取方式 在人工智能领域,对话系统已经成为了一个热门…

C#工程中Form_xx.cs不能在设计器中查看

环境:VS2022 直接上图: 原因: 写了个类在Form_xx.cs中从For继承的部分类之前,移动到之后,保证窗体类是代码中的首个类即可,如图:

实战|信息泄露

0x01系统初探 通过fofa对大学进行搜索 fofa:host"edu.cn" && status_code"200"在随意的翻阅查看时,发现访问xxx.edu.cn登录页面会优先访问登录后的页面,再跳转至登录页面。盲猜应该是前端校验,可以通过…

基于C#实现奇偶排序

这篇就从简单一点的一个“奇偶排序”说起吧,不过这个排序还是蛮有意思的,严格来说复杂度是 O(N2),不过在多核的情况下,可以做到 N2 /(m/2)的效率,这里的 m 就是待排序的个数,当 m100,复杂度为 N…

zlmediakit实现rtsp流服务器

本次实现是将内存中的H264数据经过zlmediakit实现为rtsp流。 我是用的是CAPI的方式,将zlmediakit作为一个sdk嵌入到自己的程序中而不是作为一个独立的进进程服务。 1.编译完成zkmedialit后会得到bin include lib三个文件夹如图 其中bin中的MediaServer是作为独立的…

生成EtherCAT从站XML图片信息方法

0 工具准备 1.PS CS6 2.Hex Editor Neo(文件Hex编辑器) 3.DM3E-556步进电机驱动器 4.TwinCAT(验证XML图片修改效果)1 准备一张需要生成图片信息的图片 根据EtherCAT从站XML图片格式规范,我们需要用到的元素名为ImageData16x14,它要求使用16x14分辨率、深度为16bit的bmp…

基于C#实现鸡尾酒排序(双向冒泡排序)

通俗易懂点的话,就叫“双向冒泡排序”。 冒泡是一个单向的从小到大或者从大到小的交换排序,而鸡尾酒排序是双向的,从一端进行从小到大排序,从另一端进行从大到小排序。 从图中可以看到,第一次正向比较,我们…

二叉树:leetcode1457. 二叉树中的伪回文路径

给你一棵二叉树,每个节点的值为 1 到 9 。我们称二叉树中的一条路径是 「伪回文」的,当它满足:路径经过的所有节点值的排列中,存在一个回文序列。 请你返回从根到叶子节点的所有路径中 伪回文 路径的数目。 给定二叉树的节点数目…

Python提取PDF表格(基于AUTOSAR_SWS_CANDriver.pdf)

个人学习笔记,仅供参考。 需求:提取AUTOSAR SWS中所有的API接口信息,用于生成C代码。 此处以AUTOSAR_SWS_CANDriver.pdf为例,若需要提取多个SWS文件,遍历各个文件即可。 1.Python包 pdfplumber是一款完全用python开…

泗博MODBUS转PROFINET网关TS-181/TS-180型号对比

上海泗博原有MODBUS转PROFINET网关TS-180在客户实际使用中获得了不错的反响。由于工业应用场景的多类,有客户对串口的需求不是那么多,想要性价比更高的产品,因此TS-181应运而生。相较于TS-180而言,TS-181有更高的性价比&#xff0…