基于Unity3D手势识别程序设计方法.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于Unity3D手势识别程序设计方法

基于Unity3D手势识别程序设计方法   摘要本文介绍了以触摸屏的基本工作原理和程序控制方法,比较详细地分析触摸屏的单点操作、和多点操作的理论根据,最后给出了基于Unity3D游戏引擎的手势识别算法。   【关键词】手势识别触摸屏 Unity3D多点触摸   随着手机游戏的爆发式增长,游戏引擎也不断提高对触摸屏的人机交互界面的要求。这些进展主要体现触摸屏控制程序对触摸点数量的承载能力和游戏引擎对手势理解能力方面。手势识别实现了特有的触屏操作,它已经取代了鼠标在人机交互界面领域中的地位。本文详细地介绍了Unity3d游戏引擎的触摸屏人机交互方法。   1触摸屏人机交互界面   触摸屏(touch screen)是通过收集触头讯号而完成人机交互的感应式液晶显示设备。当用户接触液晶屏幕上的图形按钮时,屏幕接触点后面的触觉反馈系统将按照预先编写的程序驱动各种连结电子设备向操作系统报告。   触摸原理具体来说是如下的过程:   (1)用户用手指或者其他物体接触安装在液晶显示器前端的触摸屏;   (2)触摸屏系统根据手指等媒介接触的图标或菜单位置的来定位信息的输入对象;   (3)触摸检测部件接受触摸点位置,并送入屏幕控制器;   (4)屏幕控制器将位置信号换算称坐标,交给操作系统。   2 触摸屏程序编写方法   在Unity3d游戏引擎中,需要考虑的相关因素包含3个方面:触屏的点数、手指的移动和摄像头的移动。触屏动作类型根据触屏的点数分为单点触屏和多点触屏。单点触屏通常用于拐弯,跳跃等触屏操作,多点触屏多用于放大,缩小等操作; 手指的移动存在一定的运动轨迹,其运动轨迹决定了触摸的动作;摄像头拍摄的位置是观察者的视图,摄像头拍摄的位置应及时根据手指的移动进行调整。本文给出基于Unity3d引擎的手势识别算法。    S1[允许多点触屏]    Input.multiTouchEnabled=1.   MI1[判断触屏手指的个数]   Input.touchCount==1,//表示当前只有一个手指在触摸屏上(单点触摸)。   Input.touchCount1,//表示当前有两个手指在触摸屏上(多点触摸)   MI2[当手指个数为一个]   根据Begin、Moved、Ended三个状态来判断触屏的状态.    MI3[当手指为两个]   定义两个属性f1,f2分别用来记录两个手指的位置。   手指移动的方向分为水平方向和垂直方向,水平方向又可以分为左右两个方向,而垂直方向可以分为上下两个方向。如果第一次记录的位置和离开屏幕时记录的位置的X轴的方向的记录值相减的绝对值大于Y轴的方向的记录值相减的绝对值则为水平方向的移动,否则为垂直方向的移动。若是水平方向的移动,继续判断是向左划动还是向右划动,当first_screenpos.x大于endpos.x时则为向左划动,否则为向右划动。若是垂直方向的移动,继续判断是向下划动还是向上划动,当first_screenpos.y大于endpos.y时则为向下划动,否则为向上划动。   For (i=0;i2;i++)/*在for循环中进行判断触摸动作是否结束或者手指处于移动状态*/   { Touch touch=Input.touch[i];    if(触屏结束) 中断循环;    if(触屏进行)    { 设置变量mov,初始值为0,用来存储X,Y轴的增量    if(i==0)   { finger1=touch.position;   mov1=touch.deltaposition;//Touch.deltaPostion即增量位置}   else   {finger2=touch.position;    mov2=touch.deltaposition;   if(向左划){ 将m1的X轴的值赋给mov;}   else{将m2的x轴的值赋给mov; }   if(手指向下移){ 将m1的y轴的值赋给mov;}   else{将m2的y轴的值赋给mov;}   }}}}   3 总结   本文分析了触摸屏的硬件工作原理,并给出了基于Unity3D的单点触摸操作以及多点触摸操作的实现方法。这些算法可以用于windows、Mac、iOS、Wii、PS3、Andriod等多种平台的游戏开发当中,从而可以降低开发难度、减少跨平台的开发周期。此外还讨论了多点识别所存在的若干问题。      参考文献   [1]金玉玺.Unity3D手机游戏开发[M].北京:清华大学出版社,2013(8).   [2]林淦.基于平板计算机的触摸屏程序设计[D].福建工程学院,2012(6).      作者单位

文档评论(0)

189****7685 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档