Unity3D Input按键系统
默认输入轴:
horizontal 和 vertical被映射到w, a, s, d键和方向键
fire1, fire2, fire3被分别映射到ctrl,option(alt)和command键
mouse x 和 mouse y被映射到鼠标移动增量
window shake x 和 window shake y 被映射到窗口的移动
添加新的输入轴
添加新的虚拟轴,选择菜单edit->project settings->input :
名称(name):名称用于从脚本使用这个轴
描述名称(descriptive name):正值名称显示于配置对话框的输入标签,用于独立版。
描述负名称(descriptive negative name):负值名称显示于配置对话框的输入标签,用于独立版。
负按钮(negative button):该按钮用于在负方向移动轴 (如:左)
正按钮(positive button):该按钮用于在正方向移动轴 (如:右)
备选负按钮(alt negative button):备选按钮用于在负方向移动轴(如:a)
备选正按钮(alt positive button):备选按钮用于在正方向移动轴 (如:d)
重力(gravity):当没有按钮被按下,在单位每秒速度,轴下降到0。
死亡(dead):模拟的死区大小。 设定范围内所有模拟设备的值为0。
灵敏度(sensitivity):在单位每秒速度,轴将移向目标值。这近用于数码设备。
捕捉(snap):如果启用,当按下相反方向的按钮,该轴值将重设为0。
反向(invert):如果启用,负按钮将提供一个正值,反之亦然。
类型(type):控制轴的输入设备类型
轴(axis):连接设备的轴将控制这个轴 (因为上面正负按钮设置的是左右,所以这里要选x轴)
操作杆(joy num)连接操纵杆将控制这个轴
移动设备输入
unity 为你提供访问ios/android系统的input 和 ios input脚本接口。
多点触控
触控列表(input.touches):返回上一帧所有触控状态的对象列表(touch[]:单个触摸状态)。
触控状态(touchphase):(例子:if(touch.phase != touchphase.began))
began:手指已触摸屏幕。
moved:手指在屏幕上移动。
stationary:手指触摸屏幕,但并没有移动。
ended:手指从屏幕上移开。这是一个触摸的最后状态。
canceled:系统取消跟踪触摸,如用户把屏幕放到他脸上或超过五个接触同时发生。这是一个触摸的最后状态。
设备面朝方向
input.deviceorientation : (例子:if (input.deviceorientation == deviceorientation.facedown))
unknown:设备的方向不能被确定。
portrait:设备在纵向模式,设备直立并home按钮在底部。
portraitupsidedown:设备在纵向模式,但颠倒一下,设备直立并home按钮在顶部。
landscapeleft:设备在横向模式,设备直立并home按钮在右边。
landscaperight:设备在横向模式,设备直立并home按钮在左边。
faceup:设备保持与地面平行,屏幕的面向上。
facedown:设备保持与地面平行,屏幕的面向下。
加速传感器
input.acceleration :竖直拿着设备(home按钮在底部),x轴指向右,y轴指向上,z轴指向前。
加速度传感器数值可能被颠簸影响。应用低通过过滤器可以是它平滑,摆脱干扰。
//加速器刷新间隔
float accelerometerupdateinterval = 1.0f / 60.0f;
//值越大, 被过滤值将汇集当前输入采样越慢
float lowpasskernelwidthinseconds = 1.0f;
//过滤范围
private float lowpassfilterfactor = accelerometerupdateinterval / lowpasskernelwidthinseconds;
private vector3 lowpassvalue = vector3.zero;
void start () {
lowpassvalue = input.acceleration;
}
//过滤方法 (获取加速量调用此方法即可)
vector3 lowpassfilteraccelerometer(){
lowpassvalue = mathf.lerp(lowpassvalue, input.acceleration, lowpassfilterfactor);
return lowpassvalue;
}
更多unity2018的功能介绍请到paws3d爪爪学院查找。
推荐阅读
-
Linux设备模型之input子系统详解
-
Unity3D实现分页系统
-
Android系统添加自定义鼠标样式通过按键切换实例详解
-
Unity3D获取当前键盘按键及Unity3D鼠标、键盘的基本操作
-
win10如何快速锁屏 win10系统快速锁屏按键分享
-
ios系统中利用css去除input和textarea阴影的方法
-
Win10系统玩鬼泣4键盘按键失灵了解决方法
-
韦东山uboot_内核_根文件系统学习笔记5.8-第005课_字符设备驱动_第008节_第008节_字符设备驱动程序之中断方式的按键驱动_编写代码
-
手把手教你写Linux设备驱动---input子系统(四)--电容屏驱动ft5x06编写(一)(基于友善之臂4412开发板)...
-
linux 驱动开发之平台设备驱动设备树 input子系统的使用:按键中断驱动