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

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

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

Animation:animation组件用于播放动画

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

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

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

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

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

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

 为Player添加PlayerObject.cs组件测试

1 1 public enum playerAnimState { 2 2 /// <summary> 3 3 /// 玩耍状态 4 4 /// </summary> 5 5 play, 6 6 /// <summary> 7 7 /// 默认状态 8 8 /// </summary> 9 9 idle, 1010 /// <summary> 1111 /// 张嘴状态 1212 /// </summary> 1313 open, 1414 /// <summary> 1515 /// 吞食状态 1616 /// </summary> 1717 eat, 1818 /// <summary> 1919 /// 失败状态 2020 /// </summary> 2121 unhappy, 2222 } 2323 2424 public class PlayerObject : MonoBehaviour { 2525 /// <summary> 2626 /// 动画状态 2727 /// </summary> 2828 public playerAnimState playerState; 2929 /// <summary> 3030 /// 动画控制器 3131 /// </summary> 3232 public Animator playerAnimator; 3333 3434 /// <summary> 3535 /// 改变玩家状态方法 3636 /// </summary> 3737 /// <param name="state">玩家状态</param> 3838 public void ChangeState(playerAnimState state) { 3939 switch (state) 4040 { 4141 case playerAnimState.play: 4242 playerAnimator.SetBool("IsPlay",true); 4343 playerAnimator.SetBool("IsIdle",false); 4444 break; 4545 case playerAnimState.idle: 4646 playerAnimator.SetBool("IsIdle", true); 4747 playerAnimator.SetBool("IsOpen", false); 4848 playerAnimator.SetBool("IsPlay", false); 4949 break; 5050 case playerAnimState.open: 5151 playerAnimator.SetBool("IsOpen", true); 5252 playerAnimator.SetBool("IsIdle", false); 5353 break; 5454 case playerAnimState.eat: 5555 playerAnimator.SetBool("IsEat", true); 5656 playerAnimator.SetBool("IsOpen", false); 5757 break; 5858 case playerAnimState.unhappy: 5959 playerAnimator.SetBool("IsUnhappy", true); 6060 playerAnimator.SetBool("IsOpen", false); 6161 break; 6262 default: 6363 break; 6464 } 6565 } 6666 }
点赞
收藏

评论区

加载中...

相关推荐

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

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

Unity 2D角色动画状态切换

一,Idle状态  1,选中角色,打开Animation动画面板;  2,新建一个动画面板Idle;  3,拖动相关角色状态图片,实现动画二,run状态  1,新建一个动画面板run;  2,拖动相关角色状态图片,实现动画三,jump状态  1,新建一个动画面板jump;  2,拖动相关角色状态图片,实现动画四,打开角

Unity 动画系统 Animation和Animator 常用小功能

👈返回目录(https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fwww.cnblogs.com%2F01zxs%2Fp%2F9987225.html)Animation控制动画播放:Animation.Play();//播放默认动画Ani

CocosCreator 教你玩转Animation动画(第十四篇)

前言:Animation动画在游戏中是必不可少的,各种人物的走跑跳飞,以及各种表情动作,反正做游戏Animation动画是必修课了。这一篇章可以学会制作和控制各种动画,主要从一下几个方面介绍:1.动画制作流程;2.使用Animation动画编辑器制作动画;3.代码控制动画;一、动画制作的流程