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.mfbz.cn/a/193835.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

sqli-labs(4)

17. 观察页面发现是一个用来更改用户密码的页面,页面中出现了用户Dhakkan user输入Dhakkan passs输入1发现成功找注入点 先在user尝试,发现不管输入什么都失败在pass中尝试注入 在pass中输入1‘ 报错注入 1 and extractvalue(1,concat(0x5c,database(…

openpnp - 给底部相机加防尘罩

文章目录 openpnp - 给底部相机加防尘罩概述笔记END openpnp - 给底部相机加防尘罩 概述 设备标定完, 看着底部相机, 有点担心掉进去东西, 万一从吸嘴掉下去的料(或者清理设备台面时, 不小心掉进去东西)将顶部相机搞短路怎么办. 就想加个防尘罩, 如果有东西掉进去, 可以掉到机…

【python】python基础速通系列2-python程序中的积木块

【组成Python的几个单位】 变量:指向值的名称。或者说变量是一个名称,这个名称指向一个具体的指。比如n=17,就说这个叫做n的变量的值是17。表达式:是值,变量和运算符的组合。如果把变量理解为名词,那么表达式就是把名词连起来的动词形容词。比如:n+25。语句:代码的基本…

还在为写论文焦虑?免费AI写作大师来帮你三步搞定

先来看1分钟的视频,对于要写论文的你来说,绝对有所值! 还在为写论文焦虑?免费AI写作大师来帮你三步搞定 第一步:输入关键信息 第二步:生成大纲 稍等片刻后,专业大纲生成(由于举例&am…

CANdelaStudio 使用教程6 编辑DTC

文章目录 DTC的导入导出定义 19 服务的DTC编辑快照数据 DTC的导入导出 DTC导出的文件是 Excel 文件,可以先将这个池子的DTC导出去修改,再导入进来,完成DTC的修改 定义 19 服务的DTC 编辑快照数据

入侵redis之准备---VMware上面安装部署centos7镜像系统【详细含云盘镜像】

入侵redis之准备—VMware上面安装部署centos7镜像系统【详细含云盘镜像 废话不多说直接开始 下载centos7镜像 网上有好多,但是我相信来看小编文章的基本上应该都有centos7的镜像了吧,毕竟咱们都是同一类人,哈哈不卖关子了,小编直…

根据密码构成规则检测密码字符串

从键盘输入密码字符串,程序根据给定密码构成规则检测并给出对应提示。 (笔记模板由python脚本于2023年11月27日 19:27:47创建,本篇笔记适合熟悉Python字符串str对象的coder翻阅) 【学习的细节是欢悦的历程】 Python 官网:https://www.python.…

SpringCloud gateway (史上最全)

目录 1.1 SpringCloud Gateway 简介 1.2 SpringCloud Gateway 特征 1.3 SpringCloud Gateway和架构 1.3.1 SpringCloud Zuul的IO模型 1.3.2 Webflux 服务器 1.3.3 Spring Cloud Gateway的处理流程 2 路由配置方式 2.1 基础URI路由配置方式 2.2 基于代码的路由配置方式 …

C++ :const修饰成员函数

常函数: 常函数: 成员函数后加const后我们称为这个函数为常函数 常函数内不可以修改成员属性 成员属性声明时加关键字mutable后,在常函数中依然可以修改 属性可修改: class Person { public: void showPerson() …

外观设计模式

package com.jmj.pattern.facade;public class Light {public void on(){System.out.println("打开电灯...");}public void off(){System.out.println("关闭电灯...");} }package com.jmj.pattern.facade;public class AirCondition {public void on(){S…

2020年12月 Scratch(四级)真题解析#中国电子学会#全国青少年软件编程等级考试

Scratch等级考试(1~4级)全部真题・点这里 一、单选题(共15题,每题2分,共30分) 第1题 陶朱家开了一间小卖部,学了编程的他想编写一个程序帮助分析小卖部各种商品的售卖情况。如下图所示,目前各个商品的名称和销售量分别存在了两张列表里,一一对应,并且每一样商品的销…

Windows系统 TexWorks 显示“Font Monaco not found.“

先双击MONACO.ttf文件完成安装,还是不行用以下方法解决: 解决方法:将Monaco.ttf后缀(不一定非要这个格式的,可以自行尝试)的字体文件解压,复制进texlive文件夹下的路径,例如: C:\t…

【leetcode每日一题】565数组嵌套

思路流程: 思路v1.0 先学会写 s[0] ,用一个ans数组接收元素,每次往ans里添加的时候,先判断一下 这个index会不会超出数组的长度。ans里有没有这个元素。 s[0] 写完,就是用一个for循环,算出所有的 s[i],每次算出来的时…

Jmeter工具学习三——CSV文件、关联、断言

Jmeter学习三——CSV文件和关联 jmeter做功能测试和做性能测试的区别CSV数据文件设置(读取外部文件,进行分数据驱动)文件设置字段介绍:文件名文件编码如果出现编码问题导致的乱码,如何解决? 变量名忽略首行…

Nacos 2.X核心架构源码剖析

概述 注册中心并发处理,1.4.x 写时复制,2.1.0 读写分离;nacos 一般使用 AP 架构,即临时实例,1.4.x 为 http 请求,2.1.0 优化为 gRPC 协议;源码中使用了大量的事件通知机制和异步定时线程池&…

蓝桥杯刷题day01——字符串中的单词反转

题目描述 你在与一位习惯从右往左阅读的朋友发消息,他发出的文字顺序都与正常相反但单词内容正确,为了和他顺利交流你决定写一个转换程序,把他所发的消息 message 转换为正常语序。 注意:输入字符串 message 中可能会存在前导空…

痤疮分类-yolov5 学习过程

实验思路: 实验任务是实现痤疮分类任务,并嵌入在PyQT上。 在目标检测、语义分割、实例分割面前我们选择了目标检测的yolov5.但是我们json文件的标注框全是多边形的,通过脚本文件将json文件转化为yolo模型能够识别的标注框为矩形的txt文件。…

MidJourney笔记(4)-settings

前面已经大概介绍了MidJourney的基础知识,后面我主要是基于实操来分享自己的笔记。可能内容顺序会有点乱,请大家理解。 这次主要是想讲讲settings这个命令。我们只需在控制台输入/settings,然后回车,就可以执行这个命令。 (2023年11月26日版本界面) 可能有些朋友出来的界…

Git的原理与使用(一):Git的基本操作(包含:版本回退)

Git原理与使用一 一.Git的初识与安装1.什么是Git2.如何安装Git1.git命令与git help(Git下的"man手册")2.centos下安装Git3.ubantu下安装Git 二.Git的前置操作与前置知识1.创建Git本地仓库2.配置Git3.理解Git的分区1.工作区2.暂存区3.版本库4.分区关系总结 三.添加文件…

【电路笔记】-快速了解电阻

快速了解电阻 文章目录 快速了解电阻1、概述2、电阻器的组成类型2.1 碳电阻器2.2 薄膜电阻器2.3 绕线电阻器 3、总结 电阻器是所有电子元件中最基本、最常用的元件,人们几乎认为电阻器是理所当然的,但它们在电路中起着至关重要的作用。 1、概述 有许多不…
最新文章