Leap Left Grab和 Event hand Grabbed

来源:互联网 发布:淘宝夏季新款女装 编辑:程序博客网 时间:2024/06/16 16:08

当前用UE4在做一个LeapMotion的交互功能,使用了插件包中的LeapMotionFloatingCharacter这个Character,在github中的插件使用文档中是这样的:
1,在这个项目中首先要实现LeapEventInterface接口;
2,添加LeapMotion的LeapController or (创建一个LeapController 类型的引用变量,然后在BeginPlay事件中添加AddController赋值给引用变量)
但是做完这些后,事件变成了多次执行,Leap Left Grab会重复执行(这个事件是重复执行的罪魁祸首)
实验了多次,才知道这和LeapController的添加有关,该Character的子物体组件LeapHands中的LeapAnimBodyConnectorActor中包含了一个LeapController,当执行Character中的
LeapMotion事件时,Leap Left Grab会重复调用事件,造成事件的重复。
这里写图片描述
解决办法有三种:
1,通过变量来控制事件中的蓝图函数执行次数,比如说:通过bool值来控制
2,通过叠加LeapController来达到单次执行的目的(每加一次LeapController,事件便多执行一次)
这里写图片描述
3,添加LeapController,并且只用Leap Interface Event;这样事件就不会造成重复执行;如果使用Leap Left Grab ,那么就会和整个Character中的LeapController添加相关,每添加一次,便会多执行一次,Leap Left Grab 本身上是一个Gamepad Events事件。所以两者事件不能混用,容易引发错误。在本例中,我把Leap Left Grab事件转化成了 Event hand Grabbed 和 Event hand Released 两个事件来执行,顺利的解决了问题。
这里写图片描述
这里写图片描述

原创粉丝点击