C# “准确”;“打孔”;无碰撞目标检测

C# “准确”;“打孔”;无碰撞目标检测,c#,unity3d,game-physics,virtual-reality,steamvr,C#,Unity3d,Game Physics,Virtual Reality,Steamvr,问候。 我正在做一个项目,在这个项目中,我需要检测玩家何时在没有任何物体碰撞的情况下执行打拳(基本上是打拳空气) 当我试着做这项工作时,我试着用手(控制器)的速度作为参考。一般的想法是跟踪最后一帧的手速度,当它击中0 -考虑拳头执行手已停止,冲力将使用最大速度从最后N跟踪帧。 似乎我遇到了这样一个问题,手返回的速度经常达到0,即使手在稳定和持续地移动,因此它会不断捕获“假拳” 我在统一体中工作,用刚体来获得手的速度。 有没有人知道解决这个问题的好方法,或者有没有更好的方法在没有物体可击中的情况下

问候。 我正在做一个项目,在这个项目中,我需要检测玩家何时在没有任何物体碰撞的情况下执行打拳(基本上是打拳空气)

当我试着做这项工作时,我试着用手(控制器)的速度作为参考。一般的想法是跟踪最后一帧的手速度,当它击中0 -考虑拳头执行手已停止,冲力将使用最大速度从最后N跟踪帧。 似乎我遇到了这样一个问题,手返回的速度经常达到0,即使手在稳定和持续地移动,因此它会不断捕获“假拳”

我在统一体中工作,用刚体来获得手的速度。 有没有人知道解决这个问题的好方法,或者有没有更好的方法在没有物体可击中的情况下检测冲头。
非常感谢您的想法和想法。

我建议您使用delta位置,而不是速度,不确定您是否正在制作物理游戏(如QWOP)或角色扮演冲压动画。 但若是角色扮演打孔动画,那个么根本就并没有速度(我猜你们只能得到下降的速度),因为运动是通过动画操作Transform.position应用的。 无论哪种方式,增量位置总是获得运动的好方法,只需将当前帧的位置减去最后一帧的位置即可


但是,如果我只是想检查我的拳头是否击中任何物体,我会在手上扣动扳机,然后使用OnTiggerEnter进行检查,确保遮住我自己的身体并给出打孔的时间,这样你就会得到正确的结果。

请编辑问题以包含一个答案。