unity3d人物跳_Unity人物跳跃效果

  • Post author:
  • Post category:其他


最近在做一个小游戏,需要实现人物的跳跃效果。自己从简单到复杂,把目前比较好的方法都试了一遍,这里简单总结一下。

1.直接使用动画位移

这个其实是美术在做动画的时候已经做好的东西,跳跃的动画本身就含有位移,只需要在应用动画的时候勾选Apply Root Motion就可以了。但是简单也有问题,就是跳跃的高度无法控制,不够灵活。不过对于新手来说先试一下,至少人物能动起来,心里美滋滋。

2.使用刚体组件加作用力

这个其实就是利用Unity的刚体组件,模拟真实的物理效果。在跳跃的时刻给物体添加一个向上的瞬时作用力,这样就能模拟跳跃的效果。这个使用场合还是很多的。但是也有毛病,刚体模拟跳跃还需要勾选重力(当然也可以给物体一个向下的恒力),但是大多数情况下我们是不需要重力的,而且使用物理会消耗更多资源(相比脚本)。这个网上也有很多例子,一行代码搞定,不详细介绍。

3.自己写脚本模拟跳跃

这个是应用场景最多的方式。简单的,可以定义跳跃的时间和高度,然后开协程每帧更新物体的高度,这样就能实现跳跃,具体见下面代码。但是这种跳跃是线性的,无法模拟真实跳跃,更加无法实现自定义跳跃的曲线。

1 public int jumpTime = 30;2 public int fallTime = 20;3 public float jumpHeight =1f;4 voidJumpForSeconds()5 {6 StartCoroutine(jumpForSeconds());7 }8

9 IEnumerator jumpForSeconds()10 {11 int time =jumpTime;12 float speed = jumpHe



版权声明:本文为weixin_28866303原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。