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

相关推荐
小满Autumn1 分钟前
log4net 日志框架 — 从配置到实战速查手册
笔记·c#·.net·wpf·上位机·log4net
JaydenAI5 小时前
[对比学习LangChain和MAF-07]如何引入人机交互的审批流程
python·ai·langchain·c#·agent·hitl·maf
北域码匠6 小时前
SHA-1算法:安全哈希原理与应用解析
算法·c#·哈希算法
123的故事7 小时前
工具分享(7)-多Excel文件内容查询工具
c#·excel·实用工具
xinhuanjieyi9 小时前
html修复游戏种太阳错误
前端·游戏·html
iCxhust9 小时前
C#进程管理程序
开发语言·汇编·stm32·单片机·c#·微机原理
ceclar12311 小时前
C# 的任务并行库(TPL)
开发语言·c#·.net
魔士于安11 小时前
unity 音乐会场景 unity2022
游戏·unity·游戏引擎·贴图·模型
xiaoshuaishuai812 小时前
C# 委托与事件
开发语言·c#
甲维斯12 小时前
测一波Kimi K2.7,消耗一周配额!
前端·人工智能·游戏开发