【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"按键),角色速度提升,动画过渡到奔跑状态。松开奔跑键,角色速度降低,动画切换回行走状态。

相关推荐
AA陈超8 小时前
虚幻引擎5 GAS开发俯视角RPG游戏 P05-08 UI 部件数据表
c++·游戏·ue5·游戏引擎·虚幻
刘梦凡呀10 小时前
C#获取钉钉平台考勤记录
java·c#·钉钉
承渊政道10 小时前
动态内存管理
c语言·c++·经验分享·c#·visual studio
future_studio10 小时前
聊聊 Unity(小白专享、C# 小程序 之 播放器)
unity·小程序·c#
helloworddm11 小时前
Orleans Stream SubscriptionId 生成机制详解
java·系统架构·c#
向宇it11 小时前
【unity实战】MapMagic 2实战例子
游戏·3d·unity·c#·游戏引擎
"菠萝"12 小时前
C#知识学习-017(修饰符_6)
学习·c#
VB.Net12 小时前
C#循序渐进
开发语言·c#
SlowFeather13 小时前
Unity TMP可控角度多色渐变文字
unity·游戏引擎
feifeigo12313 小时前
C# WinForms实现模拟叫号系统
c#