博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
U3D的控制
阅读量:4315 次
发布时间:2019-06-06

本文共 2464 字,大约阅读时间需要 8 分钟。

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

U3D提供了一个Input类封装控制输入,不做详细解释,在后面我会举一些常用的例子来说明。 
Class Variables 
mousePositionThe current mouse position in pixel coordinates. (Read Only) 
anyKeyIs any key or mouse button currently held down? (Read Only) 
anyKeyDownReturns true the first frame the user hits any key or mouse button (Read Only). 
inputStringReturns the keyboard input entered this frame (Read Only). 
Class Functions 
GetAxisReturns the value of the virtual axis identified by axisName. 
GetAxisRawReturns the value of the virtual axis identified by axisName with no smoothing filtering applied. 
GetButtonReturns true while the virtual button identified by buttonName is held down. 
GetButtonDownReturns true during the frame the user pressed down the virtual button identified by buttonName. 
GetButtonUpReturns true the first frame the user releases the virtual button identified by buttonName. 
GetKeyReturns true while the user holds down the key identified by name. Think auto fire. 
GetKeyDownReturns true during the frame the user starts pressing down the key identified by name. 
GetKeyUpReturns true during the frame the user releases the key identified by name. 
GetMouseButtonReturns whether the the given mouse button is held down. 
GetMouseButtonDownReturns true during the frame the user pressed the given mouse button. 
GetMouseButtonUpReturns true during the frame the user releases the given mouse button. 
ResetInputAxesResets all input. After ResetInputAxes all axes return to 0 and all buttons return to 0 for one frame. 

--------------------------------------------------------------------------------------------------------------------------------- 
获取键盘某一(这里是空格键)按键状态(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")); //设置汽车引擎力度为垂直方向力度

转载于:https://www.cnblogs.com/softimagewht/p/3797158.html

你可能感兴趣的文章
0038-算一算是一年中的第几天
查看>>
51nod 1094 【水题】
查看>>
虚拟机设置静态IP地址
查看>>
Springboot上传文件出现MultipartException
查看>>
NHibernate错误:Could not compile the mapping document的解决
查看>>
关于vue的源码调试
查看>>
003.第一个动画:绘制直线
查看>>
K2BPM怎么让金融数据更有意义?
查看>>
史玉柱自述:我是如何带队伍的
查看>>
靶形数独【贪心+深搜】
查看>>
读大道至简第三章有感
查看>>
BeforeFieldInit的小叙
查看>>
TeamViewer的下载地址,低调低调
查看>>
005 线程ID和线程的优先级
查看>>
POJ 3067 Japan (树状数组 && 控制变量)
查看>>
python基础条件和循环
查看>>
an exciting trip
查看>>
【转】xmind8 破解激活教程
查看>>
Mysql用命令方式启动服务
查看>>
【贪心】codeforces A. Heidi and Library (easy)
查看>>