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

相关推荐
小羊没烦恼!3 天前
初探性能优化——2个月到4小时的性能提升
java·开发语言·windows·算法·c#
神仙别闹3 天前
基于C#+MySQL实现(WinForm)个人聊天室软件
c#
SmalBox3 天前
02-07-原理篇-文件系统与跨平台适配
unity3d·游戏开发
只睡四小时3 天前
Canvas 弹道联机实战:700 行 + 固定时间步长
python·websocket·html5·游戏开发·canvas
kybs19913 天前
全球灾害数据分析可视化 毕业设计-附源码66794
vue.js·spring boot·mysql·安全·django·c#·asp.net
魔士于安3 天前
unity 丑陋哥布林 哥布林有humannoid 动画没 带动画
unity·游戏引擎·材质·贴图·模型
JQweryuiop3 天前
中小型游戏陪练工作室数字化管理实践:基于七彩屋电竞护航小程序订单、履约与绩效系统的落地复盘
大数据·游戏·小程序·架构
Polevne3 天前
C# SFTP客户端实现文件传输
c#·ssh
samble3 天前
从零搭建灌装监控系统(四):深色主题与样式系统,ResourceDictionary 统一管理
c#·wpf·mvvm·样式·工业控制
cjp5603 天前
024 . WPF MVVM类封装优化
c#