纳金网

标题: Input 类实例讲解_ 教程 [打印本页]

作者: 她。    时间: 2012-7-16 15:23
标题: Input 类实例讲解_ 教程
做游戏少不了控制,但是一个成熟的游戏引擎,是不能简单仅仅获取键盘中或者遥感确定的按键来控制,要考虑到用户更改游戏按键的情况,当然也得考虑到不同设备的不通输入方式,比如U3D是可以运行在iphone上的,iphone可没有键盘和上下左右键,他有平衡控制(简单化解为水平和垂直两个方向度数),如果用户使用飞行或者汽车方向盘手柄,那就不能简单用一个按键来描述了,需要有一个度数的问题(也可以简单分解为水平和垂直两个方向度数)。

获取键盘某一(这里是空格键)按键状态(bool):Input.GetKeyDown(KeyCode.Space)              这是最不通用的写法,不推荐

获取虚拟按键(这里是Jump)按键状态(bool):Input.GetButton("Jump")       推荐用这种写法,用户可以设置按键Jump为空格键(默认就是空格)

获取遥感(或iphone感应)垂直轴力度(是一个0-1之间的float):Input.GetAxis("Vertical“)  推荐写法,键盘的话默认按w或者up会瞬间提到1,要是遥感的话可以控制一个度,再乘以力的方向向量的话,就可以控制汽车之类的加速了。如果你直接写成键盘的w或者d,那就没办法控制力度了。

获取遥感(或iphone感应)水平轴力度(同上):Input.GetAxis("Horizontal")

获取鼠标中键状态:Input.GetAxis("Mouse ScrollWheel")

注:有些遥感可能水平方向会转超过1或者小于0的值出来(例如汽车遥感),为了避免错误的计算(乘以负数的话向量的方向可是会相反的),可以配合数学函数Mathf.Clamp01()来固定他的值在0和1之间。例如:

motor = Mathf.Clamp01(Input.GetAxis("Vertical")); //设置汽车引擎力度为垂直方向力度
作者: 她。    时间: 2012-8-3 18:38
我爱纳金网~www.narkii.com




欢迎光临 纳金网 (http://go.narkii.com/club/) Powered by Discuz! X2.5