untiy如何得到物体当前移动速度
unity3d吧
全部回复
仅看楼主
level 4
夏川fall 楼主
#Unity#

小白。
我看的那个Animator教程里叫我用moveSpeed的值作为Conditions来切换停留,走路,跑步的动画。可是我没找到应该如何得到movespeed。
我的物体是通过Nav Mesh Agent移动的。我试着用百度教的用rigidbody.velocity.magnitude获取速度,但是得到的数值很怪异,无法实现我的功能。
是要计算两帧之间或一秒内走过的距离然后除以时间吗。那应该可行,但也太麻烦了。如果有更好的办法麻烦请告诉我。
第一次玩百度贴吧,有什么不妥的地方还请多多指教[小乖]
2021年11月13日 09点11分 1
level 9
movespeed不应该是你自己设置的么[惊讶]
2021年11月15日 05点11分 4
自动寻路用的是默认速度吧[疑问]
2021年11月16日 10点11分
@暮晨👀 emmmm不是所有情况下用默认速度都合适吧。。。。肯定是要自己设置啊。。。
2021年11月17日 00点11分
level 9
就应该用rigidbody.velocity.magnitude啊,数值很奇怪是怎么个奇怪法?
2021年11月15日 11点11分 5
数字一直跳动,角色的动作就在走路和停止之间一直切换。
2021年11月26日 04点11分
我现在改为纯trigger切换动画了,效果和我要的差不多,还是谢谢你了。
2021年11月26日 04点11分
level 5
rigidbody的速度得到的好像是因为物理效果获得的速度,不使用于物体实际的速度。物体实际的速度可以用每帧的位移/时间得到。
不过我暂时也想不到怎么在使用Nav mesh agent时结合到Animator里面切换状态,能力实在有限……
2022年01月24日 13点01分 7
level 5
老哥,我现在找到方法了。我在Animator中使用了2D笛卡尔坐标的blend tree,里面融合了前左右跑,前左右走,站立,转身这几个动画(动画自带位移),控制的参数选的是向前值和转向值(正负号表示左右)。然后用人物朝前的向量和人物与目的点连线的向量,求一个夹角值,再求正余弦值分别赋给控制动画的两个参数,就达到了用NavMeshAgend控制使用动画的效果。
然后人物到达目的点的时候就切换下一个目的点,如此循环,做出来的效果不错。
老哥要是有需要的话,可以私信交流,一起学习讨论~
2022年01月24日 16点01分 8
太强了
2022年03月28日 02点03分
老哥你在unity帖子里说那个获得物理移动速度的说法可以详细教我下吗
2022年06月22日 12点06分
@凉王◎ 等一下我发个帖子吧
2022年06月22日 12点06分
2022年06月22日 13点06分
level 5
我自己总结了一些自动方法,不知道能不能看清
2022年06月23日 03点06分 9
level 1
我也想知道这个,获取的magnitude并不是rigidbody里的speed值,我想获取准确的speed值要怎么获取,只读的也行
2022年09月22日 03点09分 10
1