Unity中Animator的2DSprite动画控制与使用

Wesley13
• 阅读 941

关于Unity动画系统几个名词概念,需要了解一下:

Animator:动画控制器,控制Mecanim动画系统的接口。

Animation:animation组件用于播放动画

AnimationClip:动画剪辑片段,储存基于关键帧的动画,是用于Animation来播放动画。

Animation编辑面板:此面板可以进行动画的调整,crtl+6打开animation编辑面板,默认是不能进行任何操作的,要选中做动画的精灵才可以创建动画。

关于创建2D动画的方法有很多,百度搜一下不再累赘,因为美术资源已经做好了部分切图处理,所以我直接拿已经切好的动画来进行处理:

Unity中Animator的2DSprite动画控制与使用

分别制作了Idle,open,eat,unhappy,play五个动画剪辑片段。并制作了一个新的Animator用来作为Player的控制。

Unity中Animator的2DSprite动画控制与使用

之后再Animator建立联系,添加变量

Unity中Animator的2DSprite动画控制与使用

添加各种条件,为下一步脚本控制做准备。

Unity中Animator的2DSprite动画控制与使用

 为Player添加PlayerObject.cs组件测试

 1 public enum playerAnimState {
 2     /// <summary>
 3     /// 玩耍状态
 4     /// </summary>
 5     play,
 6     /// <summary>
 7     /// 默认状态
 8     /// </summary>
 9     idle,
10     /// <summary>
11     /// 张嘴状态
12     /// </summary>
13     open,
14     /// <summary>
15     /// 吞食状态
16     /// </summary>
17     eat,
18     /// <summary>
19     /// 失败状态
20     /// </summary>
21     unhappy,
22 }
23 
24 public class PlayerObject : MonoBehaviour {
25     /// <summary>
26     /// 动画状态
27     /// </summary>
28     public playerAnimState playerState;
29     /// <summary>
30     /// 动画控制器
31     /// </summary>
32     public Animator playerAnimator;
33 
34     /// <summary>
35     /// 改变玩家状态方法
36     /// </summary>
37     /// <param name="state">玩家状态</param>
38     public void ChangeState(playerAnimState state) {
39         switch (state)
40         {
41             case playerAnimState.play:
42                 playerAnimator.SetBool("IsPlay",true);
43                 playerAnimator.SetBool("IsIdle",false);
44                 break;
45             case playerAnimState.idle:
46                 playerAnimator.SetBool("IsIdle", true);
47                 playerAnimator.SetBool("IsOpen", false);
48                 playerAnimator.SetBool("IsPlay", false);
49                 break;
50             case playerAnimState.open:
51                 playerAnimator.SetBool("IsOpen", true);
52                 playerAnimator.SetBool("IsIdle", false);
53                 break;
54             case playerAnimState.eat:
55                 playerAnimator.SetBool("IsEat", true);
56                 playerAnimator.SetBool("IsOpen", false);
57                 break;
58             case playerAnimState.unhappy:
59                 playerAnimator.SetBool("IsUnhappy", true);
60                 playerAnimator.SetBool("IsOpen", false);
61                 break;
62             default:
63                 break;
64         }
65     }
66 }
点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
待兔 待兔
5个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Chase620 Chase620
3年前
CSS3动画之逐帧动画
CSS3动画开发指南第二弹,剥丝抽茧为你解析逐帧动画,同时放送从实战经验中总结出来的逐帧动画使用技巧。什么是逐帧动画要了解CSS3逐帧动画,首先要明确什么是逐帧动画。看一下维基百科中的定义:定格动画,又名逐帧动画,是一种动画技术,其原理即将每帧不同的图像连续播放,从而产生动画效果。简而言之,实现逐帧动画需要两个条件:(1)相关联
Wesley13 Wesley13
3年前
Unity 2D角色动画状态切换
一,Idle状态  1,选中角色,打开Animation动画面板;  2,新建一个动画面板Idle;  3,拖动相关角色状态图片,实现动画二,run状态  1,新建一个动画面板run;  2,拖动相关角色状态图片,实现动画三,jump状态  1,新建一个动画面板jump;  2,拖动相关角色状态图片,实现动画四,打开角
Wesley13 Wesley13
3年前
Unity 动画系统 Animation和Animator 常用小功能
👈返回目录(https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fwww.cnblogs.com%2F01zxs%2Fp%2F9987225.html)Animation控制动画播放:Animation.Play();//播放默认动画Ani
Stella981 Stella981
3年前
CocosCreator 教你玩转Animation动画(第十四篇)
前言:Animation动画在游戏中是必不可少的,各种人物的走跑跳飞,以及各种表情动作,反正做游戏Animation动画是必修课了。这一篇章可以学会制作和控制各种动画,主要从一下几个方面介绍:1.动画制作流程;2.使用Animation动画编辑器制作动画;3.代码控制动画;一、动画制作的流程
Wesley13 Wesley13
3年前
Unity使用AnimatorOverrudeController动态替换AnimationClip
目的:    代码中经常需要动态替换AnimatorController动画剪辑即:AnimationClip,这里先提供替换的代码:// 要替换Clippublic AnimationClip clip;private Animator animator;void Awake(){
Wesley13 Wesley13
3年前
Unity 动画系统 Animation 和 Animator 联系与区别
👈返回目录(https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fwww.cnblogs.com%2F01zxs%2Fp%2F9987225.html)引言在unity的老版本中我们只有Animation组件,在4.6版本以后则增添了Animator组件,如果
Stella981 Stella981
3年前
Cocos笔记
//判断是不是移动平台cc.sys.isMobile//动画系统this.animthis.getComponent(cc.Animation)ascc.Animation;//全场最佳唯一,跨场景存活cc.game.addPersistRootNode(t
绣鸾 绣鸾
1年前
Moho Pro 14 for Mac(2D动画制作软件)
是一款专业的2D动画制作软件。它具有强大的功能和工具,适用于动画制作师、插画师和设计师。MohoPro14提供了丰富的动画功能,包括骨骼动画、形状插值、帧逐帧动画等。您可以使用骨骼工具来创建复杂的角色动画,通过设置骨骼关节和控制器,实现自然流畅的动作。形状