无论在虚幻中手指的位置如何,都同时调用“捏”和“旋转事件”?

时间:2018-09-11 16:08:09

标签: mobile unreal-engine4

基本上,我是在虚幻引擎中创建一个移动应用程序。我发现虚幻已经为手机内置了“旋转”和“捏”手势。但是,在发现它们大约五秒钟之后,我再次陷入了绝望的深渊。

在两个事件上仅附加了一个简单的打印字符串后,我发现无论我如何将手指放在屏幕上,两个事件都基本上同时被调用。为每个事件设置简单的布尔值,我发现捏事件在此输入战中基本上赢了9/10次。

我认为就编程而言,这是内置事件,所以我没有做错任何事情。这是某种错误还是已解决?为了调用一个或另一个事件,我的手指必须移动一些特定的方式吗?我觉得我对手机做了标准的捏合和旋转手势...

1 个答案:

答案 0 :(得分:0)

进行更多研究后,我发现在为两个手势事件设置轴值后,它们都给出了非常不同的值。捏手势的值始终在0到14ish之间。另一方面,旋转手势轴返回旋转度。

我解决了两个都同时执行的问题,方法是将当前旋转轴值缓存起来,然后将其与下一个值进行比较(如果两者之间的差值大于10(绝对值)),然后执行旋转,我还采用了该值并将其除以5以获得更平滑的旋转,即每次调用2度。

就收缩轴而言,我没有必要在其上放置限制器,因为我的变焦速度相对较慢,并且在执行旋转操作的大部分时间内,该值变化不大。 但是,如果有人计划使用捏手势,我强烈建议将-1和1之间的范围归一化。我认为,对于虚幻引擎而言,执行不佳只是因为它没有做到这一点。框。关于如何执行此操作的一些建议是,您必须检查该值是否大于1(放大)或(放大)。因此,您必须将0-1到-1的值归一化,将1-14到0的值归一化。考虑到按下事件在两个手指在屏幕上的每个刻度上都会被调用,因此标准化这些值就很有意义。当然,如果您只是用轴值替换比例,那么它开箱即用,但是,大多数人不会放大对象,他们只是向前移动摄像头/吊杆或更小。

我希望这可以帮助其他尝试使用这些记录不充分的手势事件的人。