Unity3D中Rigidbody.velocity和Addforce的区别

最近刚跟教程做了下游戏,涉及到了这两个方法的不同。在这里特意以我个人的见解说一下,作为一个unity学习新人,没有太高深的物理公式以及深入的解释。

Rigidbody.velocity

这个方法是瞬间给物体一个恒定的速度,将物体提升至该速度。

Rigidbody.addForce

这个方法瞬间给物体一个规定好的力

这两者有什么不同呢?
举个例子大家就明白了:

假设我们想要做一个2D的跳跃游戏,在这个游戏里我希望我按下跳跃键的时候,游戏物体的跳跃高度是恒定的。那么,如果此时我使用的是addForce显然不会满足我的效果,因为经过测试,每按一下跳跃键,它会被施加一个恒定的力,它跳跃的初始速度会越变越大,每次跳跃的高度和前一次相较变得越来越大(在连续跳跃的情况下),也就是可以理解成,我现在被施加了一个大小为50的力,在重力作用下我的力的效果在减小,在正向速度还没有完全消失的情况下,此时我又按了一下跳跃键,那么就会在这个力的基础上再施加一次大小为50的力,物体会越跳越快,越跳越高。
而此时如果我们使用的是velocity方法改变它的初始速度到我们希望的值和方向,那么当我们按下跳跃键的时候,无论此时物体减速到何种情况,也最多只会提升到我们规定的速度以及朝向我们规定的方向。初始速度不变的情况下,跳跃高度也是恒定的。

这就是他们两个的区别,一个是持续施加,一个是有限施加。
具体的游戏例子来自“涂鸦跳跃”,感兴趣的朋友可以尝试下,它使用的就是velocity方法:
在这里插入图片描述


这是我第一次写博文,文采内容请多多包涵。如有错误以及表达不当的地方,还望各位给予我积极的指正。

  • 24
    点赞
  • 67
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值