首页 > 编程语言 > 详细

unity_animator_stop_replay(重新播放)

时间:2019-10-15 20:21:52      阅读:223      评论:0      收藏:0      [点我收藏+]

对于一个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(重新播放)

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!