不管手指在虚幻中的位置,同时调用捏合和旋转事件?

问题描述 投票:0回答:1

基本上,我正在虚幻中创建一个移动应用程序。我发现Unreal内置了手机的旋转和捏合手势。然而,在我发现它们大约五秒后,我又一次陷入了绝望的深渊。

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

考虑到它是一个内置的事件,我觉得我没有做任何错误的编程。这是某种错误还是坏了?是否有一些特定的方式我的手指必须移动才能召唤一个或另一个事件?我觉得我为手机做了漂亮的标准捏和旋转手势......

mobile unreal-engine4
1个回答
0
投票

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

我解决了他们两个同时执行的问题,通过缓存当前的旋转轴值并检查它与下一个值,如果两者之间的差异大于10(绝对值)然后我执行旋转,我也采取了该值并将其除以5以获得更平滑的旋转,每次调用2度。

就夹点轴而言,我觉得不需要对其进行限制,因为我的变焦速度相对较慢,并且在执行旋转时大多数情况下,值不会发生太大变化。但是,如果有人计划使用捏合手势,我强烈建议将-1和1之间的范围标准化。我认为在Unreal的部分执行效果不佳,它不会开箱即用。关于如何执行此操作的一点建议是,您必须检查值是否大于1(放大)或不是(缩小)。因此,如果有意义,则必须将值从0-1标准化为-1到0,将值1-14标准化为0到1。考虑到两个手指在屏幕上的每个刻度都会调用按下的事件,因此将值标准化是有意义的。当然,如果您只是用轴值替换刻度,那么它可以开箱即用,但是,大多数人不会将对象缩放,只需向前移动相机/臂或更小。

我希望这有助于其他人尝试使用这些记录不清的手势事件。

© www.soinside.com 2019 - 2024. All rights reserved.