【unity HoloLens2】触碰了物体但没反应,触碰了一次却调用多次,HoloLens2的touch触发机制探究
【unity HoloLens2】触碰了物体但没反应,触碰了一次却调用多次,HoloLens2的touch触发机制探究
开发项目时发现,有时候触碰了物体却没有触发touch事件,有时候触碰了一次物体,却触发了两次事件,经过测试发现是因为touch事件的触发机制有关。
NearInteractionTouchable触发方向和触发面
要想有touch事件,需要用到一个必要的脚本——NearInteractionTouchable,这是MRTK中提供的,这个脚本中有几个参数——LocalForward、Localup、Lcoalcenter、Bounds,其中localforward和localUp比较关键,它们会决定以哪个方向、哪个面的触碰来触发touch事件;剩下两个参数可以在前两个参数修改完之后fix一下(MRTK提供了的方法)如下图所示。
而在添加了该脚本之后,在unity中就可以看到场景中的物体上出现了一个白色箭头,和与collider某一面重合的白色框 (注意:需要在unity编辑器的Hierarchy面板中选中那个物体,才会出现),这便是可以触发touch事件的方向和面,如下图所示。
触碰测试
可以看到,白色框在4面,箭头朝外,此时触碰1面没有触发事件,触碰4面,可以触发事件,也就是说白色的框所在的collider的那个面,才是触发面,那么从物体内部触碰4面可以触发事件吗?可以。
触碰一次却导致多次事件调用
通过上面这gif图,可以看到,手部穿过4面进入物体,触发了一次事件,从4面穿出来,又触发了一次,也就是说4面作为触发面,只要是手部穿过就会触发事件。
那么在实际操作时,操作的手完全穿过触发面,并进入物体内部,那么此时操作者会本能将手收回来,但这会导致手部再次穿过触发面导致触发事件,这就会导致好像我明明只触碰了一次面,却触发多次事件。那么如何解决?
关掉collider来防止多次触碰
触发检测是基于collider的,所以只要我们将该物体collider关掉就可以停止该物体的触碰检测,也就是在OnTouchStarted或者OnTouchCompleted时,立刻写一个GetComponent<Collider>().enabled = false;
将物体的collider关掉,之后再写需要执行的代码即可。
如果该物体之后还需要触碰交互,可以随时将collider开起来。
【unity HoloLens2】触碰了物体但没反应,触碰了一次却调用多次,HoloLens2的touch触发机制探究相关推荐
- Unity 基础 之 一个点(物体)绕另一个点(物体)旋转的简单封装
Unity 基础 之 一个点(物体)绕另一个点(物体)旋转的简单封装 目录 Unity 基础 之 一个点(物体)绕另一个点(物体)旋转的简单封装 一.简单介绍 二.实现原理 三.注意事项 四.效果预览 ...
- UNITY polygon collider不随物体旋转
UNITY polygon collider不随物体旋转 U3D中的一般包围框如 boxcollider, meshcollider, capsule collider等都会随物体旋转而旋转.然而po ...
- unity平行光太亮?物体发白?可能你使用了2个或多个平行光
unity平行光太亮?物体发白?可能你使用了2个或多个平行光 今天做项目时就遇到了这个问题,光亮得让物体发白 发现加载的场景 里面有个 平行光,删了就好了 要是感觉还是太亮,就把主平行光的Intens ...
- Unity Shader 之 简单实现物体被压扁(top顶点的逐渐与bottom顶点重合)的效果
Unity Shader 之 简单实现物体被压扁(top顶点的逐渐与bottom顶点重合)的效果 目录 Unity
- Unity:计算两个物体(没有父子关系)的相对坐标
Unity:计算两个物体(没有父子关系)的相对坐标 问题描述 实现方法 实现原理 参考链接 问题描述 计算Unity场景中物体B在物体A坐标系下的坐标,且两物体没有父子关系 实现方法 计算一个物体A的 ...
- Unity Shader 之 简单实现物体被黑洞吸收吞噬(或者从黑洞中出来)的效果
Unity Shader 之 简单实现物体被黑洞吸收吞噬(或者从黑洞中出来)的效果 目录
- 阿里价值观大辩论:低 P 碰红线,低 P 没了;高 P 碰红线,红线没了,其背后……...
loonggg 读完需要 6 分钟 速读仅需 2 分钟 昨天在全网热议了一篇晚点团队的文章<阿里内部价值观大辩论:谁的红线?>,又把阿里的价值观推到了风口浪尖上.这篇文章主要是通过阿里内网 ...
- Unity鼠标控制摄像机 围绕物体旋转
Unity鼠标控制摄像机 围绕物体旋转 角度范围判定 // An highlighted block using UnityEngine;public class CameraCtrl : MonoB ...
- Unity Vuforia 之 AR 识别物体抖动的简单解决思路参考
Unity Vuforia 之 AR 识别物体抖动的简单解决思路参考 目录 一.简单介绍 二.问题 三.简单解决思路 附录:Vuforia SDK 的功能如下 一.简单介绍 目前世界上主流的AR ...
最新文章
- 斯坦佛编程教程-Unix编程工具(四)
- [转]linux下fms2流媒体服务器搭建之五-----flv播放器制作篇
- 一步步把一个SpringBoot应用打包成Docker镜像并运行
- .net 2.0 制作 柱状图
- LFS-构建自己的linux
- MyIbatis :不使用XML和注解@Mapper以及MapperScan
- 【POJ1088】滑雪
- hybrid环境下划分vlan一个实验 ————一故障分析
- 《量化金融R语言初级教程》一2.6 如果方差不够用
- Java和python哪个好,学哪个有用。
- WinAPI双人贪吃蛇
- Apple越狱后超级实用的Cydia常用源推荐
- 【论文阅读】深度学习与多种机器学习方法在不同的药物发现数据集进行对比
- poi创建数据透视表_如何创建数据透视表样式
- fractional cascading
- Notepad++的64位HexEditor免费下载
- c++中冒号(:)和双冒号(::)的用法
- 电脑蓝屏---错误代码:0xc0000185,修复过程转0xc0000001,最后成功修复
- docker 应用系列(一)--- 一步步搭建虚拟机 docker 环境 附有 vue-cli + nginx 应用...
- 万能计算机作文,万能机器人作文9篇
热门文章
- MySQL处理插入过程中主键或唯一键重复值的解决办法
- Android 三大图片加载框架的对比——ImageLoader,Picasso,Glide
- windows桌面图标显示为白色解决方案
- UVM:7.3.4 UVM中后门访问操作的实现:DPI+VPI
- WORKNC 2021.0中文版软件+安装教程
- 开课吧T31项目第9天
- 通达信的接口是用易语言编程吗?
- 【愚公系列】2023年06月 攻防世界-Web(wzsc_文件上传)
- 苹果退款_苹果退款理由怎么写_苹果退款教程|流程【图文】-太平洋电脑网PConline-太平洋电脑网...
- Delaunay triangulation network怎么理解