Unity2D动画制作:实现角色移动时播放对应动画
创作时间:
作者:
@小白创作中心
Unity2D动画制作:实现角色移动时播放对应动画
引用
CSDN
1.
https://blog.csdn.net/qq_55048532/article/details/139025601
在Unity2D游戏中,角色的移动动画是提升游戏体验的重要环节。本文将详细介绍如何使用Animator组件制作角色移动时播放对应的动画,包括制作动画混合树、编辑动画控制器以及编写相关的Ruby脚本。
一、制作动画混合树
打开Window->Animation->Animator,打开动画编辑窗口
点击想要编辑动画的游戏对象
在动画编辑窗口中新建一个混合树
二、通过动画控制器编辑动画在合适的时机播放
点击加号,新建两个Parameters(参数)LookX,LookY(图中是MoveX和MoveY)
右键混合树,添加4个Motion(动作)
修改BlendType(混合类型)的属性为2D Simple Directional(2D简单方向)
将4个Motion添加刚刚制作的4个AnimationClip资源
将两个参数调整为LookX和LookY(图中是MoveX和MoveY)
调整两个参数的值
按照相同的方法再制作一个Idle混合树
返回上一级,设置Idle混合树为层级默认状态
选中Idle混合树,点击Make Transition,再点击Move行为树,使Idle状态可以切换到Move状态
再使Move状态到Idle状态也建立连接
新建一个浮点型的Speed参数,点击Idle到Move的箭头,新建一个Conditions(条件)
将条件设置为Speed大于0.1
同理,将Move变为Idle的条件设置为Speed小于0.1
三、编辑Ruby脚本
注:在以下代码中,只显示本章节新编辑的代码,其他代码均省略
- 定义二维向量lookDirection,表示Ruby的朝向
public class Ruby : MonoBehaviour{
// Ruby的朝向
private Vector2 lookDirection = new Vector2(0, -1); // 初始时Ruby面朝下方
}
- 在Update方法中定义二维向量move表示要移动的方向和大小
public class Ruby : MonoBehaviour{
// Ruby的朝向
private Vector2 lookDirection = new Vector2(0, -1); // 初始时Ruby面朝下方
void Update(){
// horizontal和vertical分别是水平和竖直方向位移的大小
Vector2 move = new Vector2(horizontal, vertical);
}
}
- 当Ruby移动时,重新设置Ruby的朝向并进行归一化处理;给Animator组件中的参数赋值
public class Ruby : MonoBehaviour{
// Ruby的朝向
private Vector2 lookDirection = new Vector2(0, -1); // 初始时Ruby面朝下方
void Update(){
// horizontal和vertical分别是水平和竖直方向位移的大小
Vector2 move = new Vector2(horizontal, vertical);
// 当Ruby移动时
if(!Mathf.Approximately(move.x, 0) || !Mathf.Approximately(move.y, 0)) {
lookDirection.Set(move.x, move.y);
lookDirection.Normalize(); // 对向量lookDirection进行归一化处理,使每个方向的值变为(-1,1)范围内的小数
}
// 给Animator组件中的参数赋值
animator.SetFloat("LookX", lookDirection.x);
animator.SetFloat("LookY", lookDirection.y);
animator.SetFloat("Speed", move.magnitude);
}
}
本章完。
热门推荐
中药材薤白的功效与作用
清炒鹌鹑蛋:一道简单又美味的夏季开胃菜
鹌鹑蛋美食攻略:家常做法,大人孩子都爱
芦花板是什么板材?优势和种类详解
重庆销售地暖材料(地暖管材质哪个最好)
揭秘艾滋病病毒血液检测报告:你的健康守护神
孜珠寺:西藏最神秘的古老寺庙
岁寒三友:松竹梅,共谱古诗之韵
腊八蒜的营养价值与食用注意事项
汽车仪表上EPC灯亮是什么故障?该怎么处理,看完就懂了!
腰椎康复训练小燕飞怎么做
低欲望消费时代消费者如何提高生活品质?
并联去耦电容的反谐振现象分析
企业竞争优势分析的主要步骤是什么?
大三可以报名考研吗?
万众瞩目变失望,泰森保罗拳赛平淡收场,拳迷送上嘘声
浙二医院皮肤科AI门诊今日开诊 患者评价:“准确又全面!”
五款养生汤品,让你补血养颜事半功倍
学生寒假健康饮食指南:五条准则助力健康成长
玩转手机开发者模式:这些高级功能你一定不能错过
系统里如何设置排班规则?
自然人如何使用电子税务局代开数电红字发票(劳务报酬适用)
团员档案怎么查个人信息·怎样查询自己的团员档案所在地
入团时间怎么查询?入团时间一般是多少岁
医美机构的数字化营销应该怎么做?
赠与的法律关系与财务处理指南
“青龙方,白虎方”指什么?有什么讲究?
《玫瑰的故事》:行气解郁,和血养颜,玫瑰可不止“恋爱脑”
玫瑰花语与情感表达的艺术(用花语传达心声的魅力与技巧)
打卡机数据清零导致考勤记录丢失?资深HR教你3步紧急处理+长效预防方案