码迷,mamicode.com
首页 > 编程语言 > 详细

unity_animator_stop_replay(重新播放)

时间:2019-10-15 21:01:06      阅读:130      评论:0      收藏:0      [点我收藏+]

标签:cli   sdn   arp   oid   很多   cti   public   top   play   

对于一个Animation重复播放,但在隐藏后,再次显示播放会出现有些属性未复原

问题描述

特效同事给的Animation中更改了物体的很多属性,如Active,Alpha, Scale,Position等等,物体本身需要重复利用,因此当不需要使用时不直接销毁而是隐藏等需要时再显示,但是在隐藏后发现再次显示的时候有些属性不会自动复原。

解决办法

  1. 在Animator Controller中添加一个空的 Animator State 为New State,并拷贝动作相同的 animation clip
  2. 设置 New State 的 Speed 为 0 ,让动画不会播放且停在第1帧
  3. 设置 New State 为 Default State (默认播放)

重复播放

m_animator.Play("attack_1",0,0f);

状态重置

当动画播放完成后,重置状态

// 重置Animator
public void ResetAnimator(){
    m_animator.Play ("New State");
}

如上所说在放进对象池之前(即acitve设为false之前)把动画状态机(Animator)设置为播放第一个动画(Animation),然后刷新状态(调用ResetAnimator())即可。

其它信息

部分参考:https://blog.csdn.net/u013236878/article/details/52813994,但作者提到的方法我测试不可行

m_animator.Play ("New State");
m_animator.Update (0);

我的Unity版本: Unity5.3.7

unity_animator_stop_replay(重新播放)

标签:cli   sdn   arp   oid   很多   cti   public   top   play   

原文地址:https://www.cnblogs.com/zhaoqingqing/p/11649670.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!