当前位置:网站首页>【Unity入门计划】基本概念(7)-Input Manager&Input类
【Unity入门计划】基本概念(7)-Input Manager&Input类
2022-08-03 15:48:00 【flashinggg】
目录
1.3 Virtual Axis 虚拟轴(复数:Axels)
Ngative Button, Positive Button 负/正值键(按钮)
Input.GetKeyDown(string KeyName)
Input.GetKeyUp(string KeyName)
2.3 访问虚拟轴 Input.GetAxis(string AxisName)
在Input Manager窗口中可以查看并定义项目输入轴及其他相关的操作,这里简单介绍一下它拥有的一些控件都是什么意思。
1 Input Manager-Controls 控件
Input Mnager主要使用以下三种控件
1.1 Key 键
指物理键盘上的任何键,比如↑、W、Space空格等。
1.2 Button 按钮
指一些物理控制器上的按钮,比如游戏手柄上的X按钮。
1.3 Virtual Axis 虚拟轴(复数:Axels)
映射到上面提到的按钮/键,用户激活控件后,虚拟轴会得到[-1,1]范围上的某个值。Unity中,创建的每个项目都包含了若干输入轴,在Input Manager窗口中可以查看输入轴具有的属性。
Name 名称
轴的名称,可以在脚本中通过Name访问该轴。
Ngative Button, Positive Button 负/正值键(按钮)
用于分别沿着负向和正向推动的控件,可以是键盘上的键,也可以是控制器上的按钮。输入设置中,对于键盘按键:(默认分别为键盘上的“←”和“→”)
- Negative Buttion——负值键,按下将轴设置成-1
- Positive Button——正值键,按下将轴设置成1
对于游戏手柄:
控制杆在左侧、中间、右侧分别将水平轴设置成-1、0和1。
其余的参数这里就不过多介绍了。
2 C#中的Input类
官方文档:UnityEngine.Input - Unity 脚本 API
如上,Unity中用Input类控制用户的输入,包括键盘、鼠标、重力感应等一些输入方式。以下介绍一些常用的InputAPI中的静态函数:
2.1 键盘的输入(获取键盘事件)
Input.GetKey(string KeyName)
当键名为KeyName的键被持续按下(长按有效),返回true。可以被用在自动开火等情况。
if(Input.GetKey("up")){
print("up arrow key is held down");
}
Input.GetKeyDown(string KeyName)
当某键被按下(按下有效)时,返回true.
Input.GetKeyUp(string KeyName)
当用户释放某键时,返回ture
if (Input.GetKeyUp("space"))
{
print("Space key was released");
}
2.2 鼠标的输入(获取鼠标事件)
Input.GetMouseButton(int button)
返回是否按下了鼠标的button键,button值分别对应
- 0——鼠标左键
- 1——鼠标右键
- 2——鼠标中键
if (Input.GetMouseButton(0))
{
Debug.Log("Pressed left click.");
}
if (Input.GetMouseButton(1))
{
Debug.Log("Pressed right click.");
}
if (Input.GetMouseButton(2))
{
Debug.Log("Pressed middle click.");
}
Input.GetMouseButtonDown(int button)
用户按下botton键的帧期间返回true
Input.GetMouseButtonUp(int button)
用户松开botton键的帧期间返回true
2.3 访问虚拟轴 Input.GetAxis(string AxisName)
public static float GetAxis (string axisName);
它返回的是一个值,这是值的含义取决于该轴映射的控制类型。并且需要通过1.3中介绍的属性Name轴名称访问虚拟轴。
例如想要查询当前水平轴的值并储存在变量中,就可以使用InputGetAxis(string AxisName)访问:
float horizontalInput = Input.GetAxis("Horizontal");
该轴映射一般分为触屏类(鼠标操作)、键盘操作类(键盘、控制杆)。
鼠标操作
当轴映射到鼠标,返回的float值不在[-1,1],此时的值为当前鼠标增量*轴的灵敏度。一般正值表示鼠标向右/向下移动,负值表示向左/向上移动。
键盘操作
对于游戏手柄的控制杆,-1表示向左推到底,1表示向右推到底,0表示在中间。
对于物理键盘操作,分为以下两种
- Vertical:对应键盘的垂直,即上/下键,也可以自定义按键设置
- Horizontal:对应键盘的水平,即左/右键,也可以自定义按键设置
边栏推荐
猜你喜欢
6000 字+,帮你搞懂互联网架构演变历程!
新一代网状网协议T-Mesh无线通信技术优势介绍
Essentially a database data recovery 】 【 database cannot read data recovery case
DC-DC 2C (40W/30W) JD6606SX2 power back application
一次做数据报表的踩坑经历,让我领略了数据同步增量和全量的区别
MATLAB gcf图窗保存图像,黑色背景/透明背景
With a single operation, I improved the SQL execution efficiency by 10,000,000 times!
cnpm 安装成功后提示不是内部和外部命令,也不是可运行的命令解决方案
2021年12月电子学会图形化三级编程题解析含答案:数星星
AI也有健忘症?英国41岁教授专访:解决灾难性遗忘
随机推荐
生物统计师与临床医生协同研究使用的低代码洞察平台丨数据科学 x 临床医学
字典表(还需要输入2个字)
Deep Learning - Install CUDA and CUDNN to implement GPU operation of tensorflow
一次做数据报表的踩坑经历,让我领略了数据同步增量和全量的区别
不安装运行时运行.NET程序
cmd 关闭端口
出海季,互联网出海锦囊之本地化
深入浅出Flask PIN
Ark server opening tutorial win
用户侧有什么办法可以自检hologres单表占用内存具体是元数据、计算、缓存的使用情况?
6000 字+,帮你搞懂互联网架构演变历程!
2021年12月电子学会图形化二级编程题解析含答案:消灭蝙蝠
实习路途:记录给我的第一个实习项目中的困惑
nodeJs--跨域
16 【过渡 动画】
如何选择合适的损失函数,请看......
Three key expectations for the crypto market in August Price moves north?Still expected to be in turmoil
Internship Road: Documenting Confusion in My First Internship Project
2021年12月电子学会图形化三级编程题解析含答案:跳高比赛
红蓝对抗经验分享:CS免杀姿势