当前位置: 首页 > news >正文

Unity重置Animator到初始状态和重复播放同一个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);

补充:使用这种方法也可以让动画停在第一帧

// 重置Animator
public void ResetAnimator(){ 
    animator.Play(aninName, 0, 0);
    animator.Update(0);
    animator.enabled = false;
}

我的Unity版本: Unity5.3.7

转载于:https://www.cnblogs.com/zhaoqingqing/p/9883716.html

相关文章:

  • 一种轻量级的C4C业务数据同步到S/4HANA的方式:Odata通知
  • 发送HTTP_GET请求 表头application/json
  • 网络文件共享-SAMBA
  • 如何辨别程序员的水平?
  • jQuery清空标签内容--防止内存泄露
  • 对“工厂方法”,突然茅塞顿开
  • 算法第三章上机实践报告
  • 2018-2019-1 20165320 《信息安全系统设计基础》第六周学习总结
  • ajax实现异步上传多图并且预览
  • Redis学习之管道机制
  • fiddler安装及抓包分析
  • TP5 对于数组使用分页的方法
  • 通过K8S Ingress Controller来实现应用的流量复制
  • 主流接口测试框架对比
  • 虚拟化网络技术
  • Angular js 常用指令ng-if、ng-class、ng-option、ng-value、ng-click是如何使用的?
  • JavaScript HTML DOM
  • JavaScript对象详解
  • node学习系列之简单文件上传
  • vue的全局变量和全局拦截请求器
  • 从零到一:用Phaser.js写意地开发小游戏(Chapter 3 - 加载游戏资源)
  • 搞机器学习要哪些技能
  • 区块链分支循环
  • 我从编程教室毕业
  • 在electron中实现跨域请求,无需更改服务器端设置
  • # 达梦数据库知识点
  • # 计算机视觉入门
  • $jQuery 重写Alert样式方法
  • (32位汇编 五)mov/add/sub/and/or/xor/not
  • (C#)一个最简单的链表类
  • (vue)el-checkbox 实现展示区分 label 和 value(展示值与选中获取值需不同)
  • (超简单)使用vuepress搭建自己的博客并部署到github pages上
  • (六)vue-router+UI组件库
  • (一)appium-desktop定位元素原理
  • (原)Matlab的svmtrain和svmclassify
  • (原)本想说脏话,奈何已放下
  • (转)c++ std::pair 与 std::make
  • (转)ObjectiveC 深浅拷贝学习
  • *p=a是把a的值赋给p,p=a是把a的地址赋给p。
  • .NET 解决重复提交问题
  • .NET 命令行参数包含应用程序路径吗?
  • .NET 中让 Task 支持带超时的异步等待
  • .NET开源全面方便的第三方登录组件集合 - MrHuo.OAuth
  • .NET面试题解析(11)-SQL语言基础及数据库基本原理
  • .NET设计模式(11):组合模式(Composite Pattern)
  • .Net中的集合
  • @for /l %i in (1,1,10) do md %i 批处理自动建立目录
  • @RequestBody与@ModelAttribute
  • [ C++ ] STL_vector -- 迭代器失效问题
  • [14]内置对象
  • [2019/05/17]解决springboot测试List接口时JSON传参异常
  • [Android实例] 保持屏幕长亮的两种方法 [转]
  • [Angular] 笔记 8:list/detail 页面以及@Input
  • [BZOJ 4598][Sdoi2016]模式字符串
  • [C#]C# OpenVINO部署yolov8图像分类模型