Unity3d怎么让人物跳起来

Unity3d怎么让人物跳起来,第1张

赋予人物一个跳起来的动画

1、在动画软件中编辑跳起来的动画,导出包含该动画的FBX

2、将这FBX导入unity,将FBX的动画拖到蒙好皮的角色中

3、看他跳。。一下

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

 

   2使用刚体组件加作用力

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

 

   3自己写脚本模拟跳跃

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

1 public int jumpTime = 30;

2 public int fallTime = 20;

3 public float jumpHeight = 1f;

4 void JumpForSeconds()

5 {

6 StartCoroutine(jumpForSeconds());

7 }

8

9 IEnumerator jumpForSeconds()

10 {

11 int time = jumpTime;

12 float speed = jumpHeight / jumpTime;

13 while(time>0)

14 {

15 time--;

16 transformTranslate(transformup speed);

17 yield return new WaitForEndOfFrame();

18 }

19 time = fallTime;

20 speed = -jumpHeight / fallTime;

21 while(time>0)

22 {

23 time--;

24 transformTranslate(transformup speed);

25 yield return new WaitForEndOfFrame();

26 }

27 }

定义一个状态来标示物体所处于的状态就行了。

比如非跳跃状态,跳跃状态,二段跳状态。同一时间物体只能处于其中一种状态,处于非跳跃状态的物体按下跳跃键可以进行跳跃同时状态置为跳跃状,跳跃状态下按下跳跃键可以进行二段跳,二段跳状态下不再接受任何跳跃指令。落地后将状态重置为非跳跃状态

以上就是关于Unity3d怎么让人物跳起来全部的内容,包括:Unity3d怎么让人物跳起来、如何用变量增加跳跃的真实感、如何在Unity中实现物体的二段跳等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/web/9802831.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存