Input:
1、使用这个类能够读取输入管理器设置的按键,以及访问移动设备的多点触控或加速感应数据。想要读取轴向使用Input.GetAxis方法获取下列默认轴: "Horizontal" 和"Vertical" 映射于控制杆、A、W、S、D和箭头键(方向键)。
2、"Mouse X" 和"Mouse Y" 映射于鼠标,"Fire1", "Fire2" "Fire3"映射于键盘的Ctrl、Alt、Cmd键和鼠标中键或控制器的按钮。新的输入设置可以使用输入管理器来添加。
3、如果你使用Input制作某种运动行为可以使用Input.GetAxis方法,它能够返回来自键盘、控制器或鼠标平缓并且可以设置的输入结果。使用Input.GetButton方法只用于像事件之类的动作。不要将它用于移动动作。Input.GetAxis方法可以使脚本代码更简洁。
4、注意:每次输入在"Update()"之前不会再更新,所以建议你将所有的输入调用都写在Update方法中。(Update循环中)
虚拟轴:用户在键盘和鼠标上的操作的监测可以控制物体或者角色平滑的运动
5、移动设备:iOS和Android设备能够支持多点触控。你可以通过Input.touches属性集合访问在最近一帧中触摸在屏幕上的每一根手指的状态数据。
6、当设备移动时,它们的加速感应器硬件将报告它们在三维空间中沿着三个主轴的线性加速变化数据。你可以使用这些数据检测设备当前的移动方向(相对于地面)和突然间的方向改 变。
7、硬件沿着某感应一轴加速就会立即返回重力值。如果值为1.0代表沿着给定轴的方向+1g的重力加速度,如果值为-1.0代表-1g的重力加速度。如果你保持设备垂直(主页键在下方)在你正前方,那么X轴就是指向你右侧的方向,Y轴指向正上方,Z轴就是你所面向的方向。
8、你可以读取Input.acceleration属性获得设备的加速度信息。你也可以使用Input.deviceOrientation属性获取设备在三维空间中的方位偏移。检测方位变化在你想要制作游戏行为中会非常有用,当用户转动设备或拿着设备时它是不同的。
9、注意:速度感应装置在每一帧中能够轮询多次,想访问上一帧的所有速度样本你可以读取Input.accelerationEvents属性集合。这在重组玩家动作中会非常有用。例如将加速数据放入一个预测器中或者实现其他一些精确的动作捕捉。
一、旋转、移动:
using UnityEngine; using System.Collections; public class CarAxis : MonoBehaviour { public float speed = 10; public float rotateSpeed = 100; void OnGUI() { //Input.GetAxis()使用控制器和键盘输入时此值范围在-1到1之间。如果坐标轴设置为鼠标运动增量,鼠标增量乘以坐标轴灵敏度的范围将不是-1到1 。 float translation = Input.GetAxis("Vertical") * speed;//垂直的 :上下 float rotation = Input.GetAxis("Horizontal")*rotateSpeed;//水平的 : 左右 translation *= Time.deltaTime;//每秒增量 rotation *= Time.deltaTime; transform.Translate(new Vector3(0, 0, translation));//控制物体在z轴上运动 transform.Rotate(new Vector3(0, rotation, 0));//在y轴旋转 } }
二、其他虚拟轴按钮
2.1、GetKey(name:String) 直接只用字符串 eg:Input.GetKey("up"):
GetKey(key:KeyCode) 键盘键 eg:Input.GetKey(KeyCode.DownArrow)
GetKey检测的是长按事件,只要按下并保持则一直返回真,GetKeyDown\GetKeyUp按下的那一瞬间返回真,抬起按钮再次按时才返回真
2.2、GetButton(button:String)按钮的名字 一般是虚拟轴的名称(定义):
GetAxis() 和GetButton()区别:GetButton常用于一些事件性的虚拟轴 如:fire射击 是对应某个按键而不是检测一些按键的数值范围
Unity3D笔记 英保通四 虚拟轴应用及键盘事件,布布扣,bubuko.com
原文:http://www.cnblogs.com/PEPE/p/3597736.html