KinectManager很容易获取关节速度,运用GetJointVelocity()即可,但如果要达到玩家控制角色前进速度,只将获得到的数据赋值给player.rigidbody.velocity是不可以的,会出现忽慢忽快的效果,此时我们需要平滑处理角色的速度。
我们需要一个List列表存放30个最近获取到的速度值,获取其平均值,再赋值给player.rigidbody.velocity。
如下代码:
我没调用GetJointVelocity(),而是使用了GetJointPosition(),即每帧都获取关节的位置,然后求出每一帧移动的距离,将这些距离存储到List列表中,每帧都会求出一个平均距离,这便是这一秒的平均速度。(如果1秒30帧)