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

简介: 本文介绍了如何在Unity中实现角色行走与奔跑的切换功能,涵盖动画器创建、动画设置、角色移动代码编写及测试运行,帮助开发者提升角色移动的灵活性与操作体验。

4.png

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

目录:

1.创建动画器
2.设置动画
3.编写角色移动代码
4.测试与运行


一.创建动画器

在“Project”面板,右键选中“Create”,点击“Animator Controller”,创建一个 Animator 的动画组件,然后将组件拖拉到角色上。
585a0d71-a38a-46bb-b1b2-eb7dcf17a4f6.png

二.设置动画

1.选中“站立动画”、“行走动画”和“奔跑动画”,然后选择“Rig”页签,把“Animation Type”切换成“Humanoid”。随后点击“Animation”页签,把“行走动画”和“奔跑动画”的循环播放(Loop Time)勾选上。
5f472b21-5363-00d1-6b62-c37bb3108418.png

2.打开角色动画器,把“站立动画”拖拉到动画器上,然后创建一个触发变量,我这里命名为“run”。
5cfbcf82-fc7e-21e1-20ce-b884a490d27f.png

3.接着点击鼠标右键,选择“Create State”,点击“From New Blend Tree”,创建一个Blend Tree动画(这里它会自动创建一个触发变量,我先把它改名为Speed)。
2eda868f-9d2c-d455-8e7e-1dcb5a946c2b.png

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

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

三.编写角色移动代码

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

2.编写行走与奔跑的切换代码
代码、模型和动画都已经上传到我的个人博客了,大家可以自行下载。
原创来源于-谷宇博客:https://www.biguyu.top/home

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

e3541e86a0924917a32ae1e6354ef186.gif

目录
相关文章
|
SQL 关系型数据库 MySQL
MyCat2介绍以及部署和读写分离/分库分表(MyCat2.0)
MyCat2介绍以及部署和读写分离/分库分表(MyCat2.0)
2551 0
|
编解码 图形学 C++
如何在Blender中压缩/减小GLTF模型的大小
Blender是一款功能强大的开源软件,旨在创建3D图形,动画和视觉效果。它支持多种文件格式的导入和导出,包括GLB,GLTF,DAE,OBJ,ABC,USD,BVH,PLY,STL,FBX和X3D。这种适应性使其成为各种3D项目和工作流程的宝贵工具。(https://www.blender.org/download/)。
1977 0
|
C# 图形学 开发者
【Unity3D实例-功能-移动】复杂移动(Blend Tree方式)
本文介绍了使用Unity中Blend Tree实现角色移动控制的完整教程,涵盖动画器设置、Blend Tree创建、CharacterController组件添加及代码控制,帮助开发者实现流畅自然的角色动画效果。
401 0
|
C# 图形学
【Unity3D实例-功能-拔枪】角色拔枪(一)动态创建武器
本文详细讲解了Unity射击游戏中角色拔枪功能的实现方法,包括动态创建武器、设置拔枪动画、角色手部挂载点配置及动画器逻辑搭建,完整呈现拔枪动作的制作流程。
474 0
|
7月前
|
数据采集 自然语言处理 API
淘宝搜索API:长尾词挖掘,SEO提升的利器!
在淘宝生态中,长尾关键词因意图明确、竞争小、转化高,成为中小卖家突破流量瓶颈的关键。本文详解如何利用淘宝搜索API,结合种子词挖掘、数据清洗与分词统计,高效提取“透气男鞋”等高潜力长尾词,并通过标题优化、属性布局及直通车应用提升SEO效果,实现精准引流与转化增长。
|
图形学
【Unity3D实例-功能-拔枪】角色拔枪(二)分割上身和下身
本文介绍如何在Unity3D中实现角色“上身动画”与“下身动画”的分离控制,使角色在执行拔枪、射击等动作时,下身可独立进行移动动画,提升游戏动画灵活性与玩家体验。内容包含创建动画器、配置动画、设置Avatar Mask等步骤,并附测试效果。后续将讲解IK使用,使角色持枪更自然。
427 9
|
图形学
【unity实战】时间控制 昼夜交替 四季变化 天气变化效果
【unity实战】时间控制 昼夜交替 四季变化 天气变化效果
1552 0
|
数据采集 存储 监控
Python 原生爬虫教程:网络爬虫的基本概念和认知
网络爬虫是一种自动抓取互联网信息的程序,广泛应用于搜索引擎、数据采集、新闻聚合和价格监控等领域。其工作流程包括 URL 调度、HTTP 请求、页面下载、解析、数据存储及新 URL 发现。Python 因其丰富的库(如 requests、BeautifulSoup、Scrapy)和简洁语法成为爬虫开发的首选语言。然而,在使用爬虫时需注意法律与道德问题,例如遵守 robots.txt 规则、控制请求频率以及合法使用数据,以确保爬虫技术健康有序发展。
1691 31
|
编译器 vr&ar 图形学
从零开始的unity3d入门教程(五)---- 基于Vuforia的AR项目
这是一篇Unity3D结合Vuforia实现增强现实(AR)项目的入门教程,涵盖了环境配置、Vuforia账户注册、Target数据集创建、Unity项目设置、AR程序配置、Android环境配置以及最终在手机上测试运行的全过程。
从零开始的unity3d入门教程(五)---- 基于Vuforia的AR项目