unity 播放动画Animator 怎么判断一个动画播放结束

用户名:shengruqing
访问量:2288
注册日期:
阅读量:1297
阅读量:3317
阅读量:459919
阅读量:1144358
51CTO推荐博文
650) this.width=650;" src="http://m3./farm4/d//F383924ACCBC82C9876DCB1F8070C05A_B500_900_404_257.jpeg" width="404" height="257" style="margin:0padding:0border:0vertical-align:background:" alt="F383924ACCBC82C9876DCB1F8070C05A_B500_90" />首先 我们要先研究下 他的动作关系 这个角色的动作有Idle Attack3-1 Attack3-2 &Attack3 &&&&那么我们要使用 Unity新动画系统的 Animator Controller 来进行 动画的连接创建一个 &Animator Controller 把需要连击的动画拖拽到动画控制器里面,然后把动画连接在一起Idle---&Attack3-1---&Attack3-2---&Attack3-3650) this.width=650;" src="http://m1./farm5/d//6EFF12BC82B_B500_900_500_230.jpeg" width="500" height="230" style="margin:0padding:0border:0vertical-align:background:" alt="6EFF12BC82B_B500_90" />定义一个Int型参数命名为ActionID用来控制动画执行顺序动画顺序设置如下:Idle--&Attack3-1的ActionID=0;Attack3-1-&Attack3-2的ActionID=1;Attack3-2--&Attack3-3的ActionID=2;接下来就进入到代码阶段了using&UnityE
using&System.C
&&&&&&&&&&&&&&&&
public&class&gj&:&MonoBehaviour
&&&&private&Animator&//获取人物
&&&&private&AnimatorStateInfo&animStateI//获取动画状态信息
&&&&private&const&string&IdleState&=&"Idle";//获取默认动作
&&&&private&const&string&Attack1State&=&"Attack3-1";//获取攻击1
&&&&private&const&string&Attack2State&=&"Attack3-2";//获取攻击2
&&&&private&const&string&Attack3State&=&"Attack3-3";//获取攻击3
&&&&private&int&HitCount&=&0;&&//&当前连击数(即&玩家按下攻击键的次数)&
&&&&&&&&&&&&&&&&
&&&&void&Start()
&&&&&&&&anim&=&this.gameObject.GetComponent&Animator&();//获取动画组件
&&&&&&&&&&&&&&&&
&&&&void&Update()
&&&&&&&&animStateInfo&=&anim.GetCurrentAnimatorStateInfo(0);
&&&&&&&&if&(!animStateInfo.IsName(IdleState)&&animStateInfo.normalizedTime&1f)
&&&&&&&&&&&&//&每次设置完参数之后,都应该在下一帧开始时将参数设置清空,避免连续切换&&
&&&&&&&&&&&&anim.SetInteger("ActionID",&0);
&&&&&&&&&&&&HitCount&=&0;
&&&&&&&&if&(Input.GetKey(KeyCode.Space))
&&&&&&&&&&&&//如果按了空格键则执行攻击方法
&&&&&&&&&&&&attack();
&&&&&&&&&&&&&&&&
&&&&void&attack()
&&&&&&&&if&(animStateInfo.IsName(IdleState)&&HitCount==0&&animStateInfo.normalizedTime&0.4f)
&&&&&&&&&&&&//&在待命状态下,按下攻击键,进入攻击1状态,并记录连击数为1&
&&&&&&&&&&&&anim.SetInteger("ActionID",1);
&&&&&&&&&&&&HitCount&=&1;
&&&&&&&&if&(animStateInfo.IsName(Attack1State)&&HitCount==1&&animStateInfo.normalizedTime&0.5f)
&&&&&&&&&&&&//&在攻击1状态下,按下攻击键,记录连击数为2(切换状态在Update()中)&&
&&&&&&&&&&&&anim.SetInteger("ActionID",2);
&&&&&&&&&&&&HitCount&=&2;
&&&&&&&&if&(animStateInfo.IsName(Attack2State)&&HitCount==2&&animStateInfo.normalizedTime&0.6f)
&&&&&&&&&&&&//&在攻击2状态下,按下攻击键,记录连击数为3(切换状态在Update()中)&&
&&&&&&&&&&&&anim.SetInteger("ActionID",3);
&&&&&&&&&&&&HitCount&=&3;
}最终效果预览650) this.width=650;" src="http://m2./farm5/d//AD26EFE48ADEE8AFB54E833_ORIG_369_364.gif" width="369" height="364" style="margin:0padding:0border:0vertical-align:background:" alt="AD26EFE48ADEE8AFB54E833_ORIG_36" />本文出自 “” 博客,请务必保留此出处
了这篇文章
类别:未分类┆阅读(0)┆评论(0)unity animator
替换原有状态机里的动画时 ? - 知乎3被浏览586分享邀请回答0添加评论分享收藏感谢收起查看: 5831回复: 48
Unity 5.0新功能教学(五)U3D 5 新动画系统(结束贴)
元素币活跃度贡献值
unity3D区版主
土豪金2178
在线时间4174 小时
马上注册成为元素者,获取海量元素资源,结识各路大神级人物
才可以下载或查看,没有帐号?
从贴吧搬运来的。看了之后对5有很大的帮助哈,就转过来和大家分享咯。图文较多,准备分几次发--文本末尾附上原帖地址。
1.png (48.84 KB, 下载次数: 0)
18:15 上传
首先要说一下StateMachineBehaviour
66.png (19.17 KB, 下载次数: 0)
18:16 上传
可以为Animator的每个State都赋予一个或多个Behavior.
67.png (10.38 KB, 下载次数: 0)
18:17 上传
使用这里的New Script按钮来创建StateMachineBehaviour是最方便的, 这样创建出来的脚本不仅自动继承自StateMachineBehaviour类, 还会自动添加经过注释的Message.
需要注意的是, 不要在Awake中使用Animator.GetBehaviour.
StateMachineBehaviour可用的内容有:
68.png (48.73 KB, 下载次数: 0)
18:18 上传
上面这些是用于State的.
69.png (31.33 KB, 下载次数: 0)
18:19 上传
上面这两个是用于SubStateMachine的.
对于StateMachineBehaviour,可以使用一个SharedBetweenAnimatorsAttribute属性,
有了他, 在多个相同的Animator之上, 仅会生成一个实例. 既然是一个实例, 那么变量当然也是共享的.
70.png (149.08 KB, 下载次数: 0)
18:20 上传
IK现在支持膝盖和手肘的控制. 可以混合在正常动画中, 还可以混合在手脚的IK动画中. 我不清楚这到底是不是5.0的新功能, 反正我以前通读Unity4的文档的时候是没有这个功能的, 那时应该是4.1, 不管了, 先写在这里吧, 知识这东西不嫌多.
Animator窗口的布局有一定的改动不过不是什么重要的内容各位自行研究一下就懂了. 但是这次的Animator有一个很好的改动, 那就是加入了Entry以及Exit.
The Entry node is used when transitioning into a state machine.
The Exit node is used to indicate that a state machine should exit.
有了Entry和Exit, 对于SubStateMachine的处理可以更加灵活, 可以通过Entry和Exit将SubStateMachine完全理解为一个单独的State. 或者像Unity5之前那样将SubStateMachine内部的State与外部的东西连接.
现在可以将State多选然后拖拽到SubStateMachine中, Unity会自动帮你整理他们的Transition关系, 还可以在SubStateMachine中多选State然后拖拽到Up节点, 同样, Unity会自动整理Transition, Unity4在这方面极其尴尬, 用过的都知道. Unity5终于进步了.
71.png (52.79 KB, 下载次数: 0)
18:22 上传
橙色的Transition代表是的默认的过渡, 当第一次触发, 或者当前没有其他过渡可用时会使用这个Transition, 灰色的Transition代表的是过渡之前可以是任何State. 因此灰色的Transition只能设置condition, 不能设置过渡的细节, 因为没有任何意义.
SubStateMachine中的Exit和(UP)的区别在于Exit创建的是灰色Transition, 而(UP)创建的是白色的正常Transition.
72.png (16.45 KB, 下载次数: 0)
18:33 上传
73.png (100.99 KB, 下载次数: 0)
18:33 上传
关于Animator, 多了一种BlendTree的方式, 非常适用于面部动画.
这个模式可以将多个动画混合起来一起播放. 用参数来指定混合比例.
74.png (24.98 KB, 下载次数: 0)
18:34 上传
一般情况, Animation的运动是绝对位置的, 要想将绝对位置改变为根动画, 也就是相对位置, 可以使用这个”Generate Root Motion Curves”, 并且将Animator的Apply Root Motion开启
到这里关于新动画系统的就介绍完了。
想原作者只待苍霞致敬~
原帖地址:
元素币活跃度贡献值
原画区版主
土豪金1221
在线时间2315 小时
元素帖子强,满满正能量!
元素币 +500
---扩散转化元素币---
元素币活跃度贡献值
元素王, 积分 12572, 距离下一级还需 17428 积分
元素王, 积分 12572, 距离下一级还需 17428 积分
在线时间157 小时
资源甚好,发帖艰辛,且阅且珍惜!
还没有设置签名!您可以在此展示你的链接,或者个人主页!
元素币活跃度贡献值
土豪金3119
在线时间2824 小时
给力!元素有你更精彩
还没有设置签名!您可以在此展示你的链接,或者个人主页!
元素币活跃度贡献值
元素王, 积分 7123, 距离下一级还需 22877 积分
元素王, 积分 7123, 距离下一级还需 22877 积分
在线时间158 小时
元素那么大,我想来看看!
还没有设置签名!您可以在此展示你的链接,或者个人主页!
元素币活跃度贡献值
土豪金8697
在线时间1160 小时
元素那么大,我想来看看!
还没有设置签名!您可以在此展示你的链接,或者个人主页!
元素币活跃度贡献值
元素魔, 积分 4552, 距离下一级还需 448 积分
元素魔, 积分 4552, 距离下一级还需 448 积分
在线时间74 小时
资源甚好,发帖艰辛,且阅且珍惜!
还没有设置签名!您可以在此展示你的链接,或者个人主页!
元素币活跃度贡献值
元素魔, 积分 4289, 距离下一级还需 711 积分
元素魔, 积分 4289, 距离下一级还需 711 积分
在线时间47 小时
还没有设置签名!您可以在此展示你的链接,或者个人主页!
元素币活跃度贡献值
元素侠, 积分 1540, 距离下一级还需 460 积分
元素侠, 积分 1540, 距离下一级还需 460 积分
在线时间15 小时
想要成大触,天天上元素!
还没有设置签名!您可以在此展示你的链接,或者个人主页!
元素币活跃度贡献值
元素王, 积分 7235, 距离下一级还需 22765 积分
元素王, 积分 7235, 距离下一级还需 22765 积分
在线时间138 小时
元素那么大,我想来看看!
还没有设置签名!您可以在此展示你的链接,或者个人主页!
元素币活跃度贡献值
元素侠, 积分 1300, 距离下一级还需 700 积分
元素侠, 积分 1300, 距离下一级还需 700 积分
在线时间10 小时
为了元素币,拼了!
还没有设置签名!您可以在此展示你的链接,或者个人主页!
元素币活跃度贡献值
大自然的搬运工
元素皇, 积分 62119, 距离下一级还需 37881 积分
元素皇, 积分 62119, 距离下一级还需 37881 积分
土豪金1629
在线时间587 小时
元素帖子强,满满正能量!
微博:糖奋君&&欢迎大家来找我聊VR
(出处: 微元素Element3ds)
元素币活跃度贡献值
老王是我哦
元素皇, 积分 60830, 距离下一级还需 39170 积分
元素皇, 积分 60830, 距离下一级还需 39170 积分
土豪金2034
在线时间460 小时
元素那么大,我想来看看!
元素币活跃度贡献值
元素王, 积分 17581, 距离下一级还需 12419 积分
元素王, 积分 17581, 距离下一级还需 12419 积分
在线时间273 小时
给力!元素有你更精彩
还没有设置签名!您可以在此展示你的链接,或者个人主页!
元素币活跃度贡献值
元素王, 积分 23808, 距离下一级还需 6192 积分
元素王, 积分 23808, 距离下一级还需 6192 积分
在线时间438 小时
正是本尊想要的!
还没有设置签名!您可以在此展示你的链接,或者个人主页!
元素币活跃度贡献值
元素王, 积分 24378, 距离下一级还需 5622 积分
元素王, 积分 24378, 距离下一级还需 5622 积分
在线时间335 小时
想要成大触,天天上元素!
还没有设置签名!您可以在此展示你的链接,或者个人主页!
元素币活跃度贡献值
在线时间824 小时
想要成大触,天天上元素!
还没有设置签名!您可以在此展示你的链接,或者个人主页!
元素币活跃度贡献值
在线时间824 小时
资源发布哪家强?元素首发称大王!
还没有设置签名!您可以在此展示你的链接,或者个人主页!
元素币活跃度贡献值
元素王, 积分 22968, 距离下一级还需 7032 积分
元素王, 积分 22968, 距离下一级还需 7032 积分
在线时间446 小时
想要成大触,天天上元素!
还没有设置签名!您可以在此展示你的链接,或者个人主页!
元素币活跃度贡献值
元素王, 积分 28110, 距离下一级还需 1890 积分
元素王, 积分 28110, 距离下一级还需 1890 积分
在线时间450 小时
要想成大触&&天天上元素
还没有设置签名!您可以在此展示你的链接,或者个人主页!
【拥有1000元素币】你就可以领取
【拥有3000元素币】其实也是很容易的事情
【1W元素币】的持有者,对于很多元素者来说,是一件值得骄傲的事情!
【5W元素币】的持有者是真的土豪!赶快用它做点什么吧!
达成成就【元素贤者】在元素知道
超过20次解决提问者的问题
达成成就【我是界王】在任意元素QQ群联盟,到达【界王】以上
限量版珍贵徽章,参与元素特定活动,元素T恤获取者
元素【鼓励师】职业标志,从此走上了不一样的巅峰之路。元素鼓励师,一句你就湿!
【元素晶石】
只有【元素大神】才能拥有,自由出入元素秘境之钥
【真爱之花】
情人节限量版,据说此花会带来桃花运!
平时一次性兑换土豪金超过3000,圣诞节期间一次性兑换土豪金超过500即可获取!
【拥有10W元素币】才可以获得,您已经富可敌国了,钱对你来说只是一个数字,没有任何别的意义!
达成成就【我超神了】在 QQ群内名称与论坛一致!并到达【超神】级别
达成成就【榜上有名】进入过元素币排行榜第一行, 并且稳定 7天
不会被别人挤出前10
达成成就【元素皇者】升级成为元素皇
达成成就【皇室后裔】最先成为元素皇的30个人,或者土豪逆袭获取
达成成就【元素之神】升级成为元素神
升级到【矿脉·勘探者】
波塞冬之叉
达成成就【深海之王】有3000条回复的元素水域之王
守望者【赤炼】
守望者lewis的强大武器
【50小时】的学习,已经证明了你自己,这件法袍是你的了,由于使用了简陋的材料,能穿一个月已经不错了!
【MP50】这次的冒险才刚刚开始,和所有故事一样,你得先有一个属于自己的法杖!即使他的法力会在30天后消失
升级到【星球·资源帝】
元素推荐-友情提示 /1
每周一次的扩散大招带来更多元素币收益!
快速登录:
收藏帖子(4)
周一至周日:08:00-22:00
积分和充值
&2014&&. All rights reserved. (unity怎么用代码控制Animator组件里面的某个动画 倒播?&把速度设为 -1之前,还需要做哪些工作呢?(如果只是把 animator.speed=-1f &没有效果的,我试过) 10:39:01 追加问题描述你说的方法我试过了,不能实现倒播;即使先获取到了层(AnimatorStateInfo animatorStateInfo = animator.GetCurrentAnimatorStateInfo(0);),然后把速度设为-1f (animator.speed = -1f; 注意:AnimatorStateInfo 里面没有 speed 属性),动画即停止了。 12:58:08 追加问题描述恩,你(小宝)说的那样用代码还是实现不了。
您需要登录后才能查看回答!
1号核心群:
info@youke.pro}

我要回帖

更多关于 unity 控制动画播放 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信