c# - 无碰撞物体的准确“打孔”检测
问题描述
问候。我正在制作一个项目,在该项目中我需要检测玩家何时在没有任何物体碰撞的情况下进行拳击(基本上是冲压空气)。
在尝试完成这项工作时,我尝试使用手(控制器)速度作为参考。总体思路是跟踪最后 n 帧的手部速度,当它达到 0 时 - 考虑在手停止时执行打孔,并且将使用来自最后 n 个跟踪帧的最大速度来计算打孔力。
似乎我遇到了一个问题,即使手稳定且连续移动,从手返回的速度也经常达到 0,因此它不断捕获“假拳”。
我在 Unity 中工作并使用刚体来获得手的速度。有没有人知道对此有任何好的解决方案,或者在没有物体可以击中时有更好的方法来检测出拳。想法和想法受到赞赏。
解决方案
我建议使用增量位置而不是速度,不确定您是在制作物理游戏(如 QWOP)还是角色扮演拳击动画。但是如果是角色打拳动画,那根本就没有速度(我猜你只会得到下落速度),因为运动是通过动画操作 Transform.position 应用的。无论哪种方式,增量位置始终是获得运动的好方法,只需将当前帧的位置减去最后一帧的位置即可。
但是如果我只是想检查我的拳头是否击中任何物体,我会在我的手上触发一个触发器,然后使用 OnTriggerEnter 进行检查,一定要遮住我自己的身体并给出出拳时间,这样你就可以得到正确的结果。
推荐阅读
- python - Pythonanywhere 看不到 db dajngo
- php - import database to mysql file 是什么意思
- react-native - 尝试启动反应本机应用程序时出错
- c# - SendGrid 动态模板包含空数据 - .NET Core
- python - 这是在 Python 中使用 OOP 的正确方法吗?
- flutter - 为什么在颤振中传递列表作为小部件子级不会更新 UI,但 list.map() 在添加新子级时会更新
- node.js - 如何在 Node.js 中调用 2 个不同的 Api
- android - firebase 实时数据库分片的最大写入速度是多少?
- javascript - 如何在给定数组中仅添加具有相同_id的sumdigit列值,并且价格列在javascript中应保持不变
- html - HTML、CSS图像定位