今天,我们来聊聊 Unity 里最常打交道的动作之一——角色跳跃。无论是横版闯关还是 3D 跑酷,跳跃都是让角色“活”起来的核心操作。在 Unity 里,几行脚本就能让角色一蹬而起、稳稳落地。下面,就让我们一起把这个“弹跳感”亲手做出来吧!
目录:
1.创建动画器
2.设置跳跃动画
3.编写跳跃功能的脚本
4.测试与运行
--------------------
一.创建动画器
在这里我已经默认大家通过CharacterController实现了角色移动的功能和动画,如果有不懂的小伙伴可以去查看我《【Unity3D实例-功能-移动】角色移动-CharacterController方式》的博客文章。
这里跳跃模型和动画我都准备好了,大家可以到我的博客下载。首先我们创建一个动画器,并且拖拉到我们的角色上进行绑定。接着我们在动画器的动画模式里,选择“Animate Physics”(用于FixedUpdate方法中更新,使动画和物理系统的更新同步,使用这个模式可以确保动画与物理系统保持一致)。
二.设置跳跃动画
1.首先选中跳跃动画 -> 点击右侧菜单栏的“Rig”-> 在Animation Type的下拉框中,选择“Humanoid”(把动画设置成人形)-> 最后点击“Apply”应用即可。
2.接着打开双击创建好的动画器 -> 把跳跃动画拖拉进去 -> 在“Any State”和跳跃动画之间创建一条过渡线,在跳跃动画和“Exit”之间创建一条过渡线。
3.然后需要创建一个Trigger变量(我这里的变量命名为“jump”)
4.点击选中“Any State”和跳跃动画之间的过渡线 -> 在右侧菜单栏的“Conditions”条件列表中,添加Trigger变量“jump”。
5.点击选中跳跃动画和“Exit”之间的过渡线 -> 在右侧菜单栏的“Conditions”条件列表中,添加Bool变量“Run”,并且值为“true”(这里是在跳跃动画结束后,重新让动画器激活跑步动画,使动画器不会因为去到“Exit”节点而结束)。
三.编写跳跃功能的脚本
1.在 Unity 项目的 Assets 目录里,新建一个文件夹,命名为 Scripts(名字随意,开心就好)。
2.在该文件夹中新建一个 C# 脚本,建好后把它拖到场景里的角色身上,完成挂载。
3.实现跳跃功能的代码
代码、模型和动画都已经上传到我的个人博客了,大家可以自行下载。
原创来源于-谷宇博客:https://www.biguyu.top/home
四.测试与运行
亲测过程:点击进入 Play 模式(运行案例),利用空格键触发 isGround条件判断,调用 CharacterController.Move() 实现瞬时竖直跳跃力的赋值,并在 Game 视图的 Stats 面板连续监测向量y轴的变化 与 isGround 状态,验证基于 CharacterController 的跳跃逻辑。