【Unity3D实例-功能-移动】角色行走和奔跑的相互切换

在现时的游戏中,角色的行走与奔跑的切换不是游戏中必备的功能,但它可以提升玩家操作体验感。这篇文章我将会分享给大家,在Unity 中角色行走与奔跑之间的切换功能。从角色的速度控制,到动画的平滑切换。这篇文章将手把手拆解如何通过代码控制和动画配置,让角色的移动更加灵活。

目录:

1.创建动画器

2.设置动画

3.编写角色移动代码

4.测试与运行


一.创建动画器

在"Project"面板,右键选中"Create",点击"Animator Controller",创建一个 Animator 的动画组件,然后将组件拖拉到角色上。

二.设置动画

1.选中"站立动画"、"行走动画"和"奔跑动画",然后选择"Rig"页签,把"Animation Type"切换成"Humanoid"。随后点击"Animation"页签,把"行走动画"和"奔跑动画"的循环播放(Loop Time)勾选上。

2.打开角色动画器,把"站立动画"拖拉到动画器上,然后创建一个触发变量,我这里命名为"run"。

3.接着点击鼠标右键,选择"Create State",点击"From New Blend Tree",创建一个Blend Tree动画(这里它会自动创建一个触发变量,我先把它改名为Speed)。

4.为"站立动画"和"Blend Tree动画"添加两条过渡线。点击选中站立动画到Blend Tree动画的过渡线,Conditions列表中添加触发变量run,并设置为True,反之,Blend Tree动画到站立动画的过渡线,run变量设置为false。然后记得把"Has Exit Time"的勾选去掉,因为我们要实时切换动画。

5.最后双击打开Blend Tree,首先我们创建两个motion,一个设置行走动画,一个设置奔跑动画。随后我们把Automate Thresholds的勾选掉,再设置Threshold的值,触发行走动画这里,我设置值为1,奔跑我设置值为3。这里是什么意思呢?就是Speed的触发变量是1的时候,触发行走动画,3的时候触发奔跑动画。

三.编写角色移动代码

1.在 Assets 目录下创建一个的 Scripts 文件夹(名称自由命名),并在该文件夹内新建一个C# 脚本文件。脚本创建完成后,将它拖拉到角色对象上。

2.编写行走与奔跑的切换代码

代码、模型和动画都已经上传到我的个人博客了,大家可以自行下载。

原创来源于-谷宇博客:https://www.biguyu.top/home

四.测试与运行

亲测过程:进入 Play Mode 后,玩家按下角色移动键W、A、S、D,角色开始进入行走动画。当玩家按下奔跑键(我这里设置键位为"左Shift"按键),角色速度提升,动画过渡到奔跑状态。松开奔跑键,角色速度降低,动画切换回行走状态。

相关推荐
wanhengidc2 小时前
BGP高防服务器具体是指什么
运维·服务器·网络·安全·游戏·智能手机
m0_552200822 小时前
《UE5_C++多人TPS完整教程》学习笔记58 ——《P58 旋转奔跑动画(Rotate Running Animations)》
c++·游戏·ue5
wanhengidc3 小时前
云手机性能会受到哪些因素的影响?
运维·服务器·网络·游戏·智能手机
般若Neo3 小时前
人工智能与数字艺术 - AI技术创意应用(多模态、数字展演、游戏、元宇宙)
游戏·元宇宙·多模态
mudtools4 小时前
.NET驾驭Word之力:数据驱动文档 - 邮件合并与自定义数据填充完全指南
c#·word·.net
码猩4 小时前
wordVSTO插件实现自动填充序号
开发语言·c#
多多*4 小时前
linux安装hbase(完)
java·分布式·算法·c#·wpf
SmalBox5 小时前
【光照】Unity中的[物理模型]PBR
unity·渲染
雪域迷影5 小时前
使用C++编写的一款射击五彩敌人的游戏
开发语言·c++·游戏
2501_918126917 小时前
用html5写一个宠物小精灵游戏
游戏·html5·宠物