Unity非运行模式下实现动画播放/回退工具

本文介绍了一个在Unity非运行模式下播放、暂停和回退模型动画的工具。核心功能包括非运行时播放、单帧前进与回退、滚动条控制以及速度调整。工具还支持循环播放和选择特定动作。实现原理涉及Animator记录、模拟播放时间及UI更新。遇到的问题包括动画优化导致的播放失败及暴露骨骼还原方法。未来计划增加倒播功能以及特效与动作的同步编辑。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

实现效果

核心功能
  1. 支持选定模型(带Animator)在非运行模式下,播放/暂停/停止动作。
  2. 支持动作单帧前进,单帧回退(帧时间默认0.05f,可以代码设置)。
  3. 支持滚动条拖拽,将动作调整到指定时间。
  4. 支持调整播放速度。
其他功能
  1. 支持循环播放。
  2. 支持选中Animator下的任一动作。
  3. 编辑器关闭时,会删除中间产生的临时GameObject
  4. 选中Project中的Prefab,如果符合条件,将会自己创建一份Clone到Hierarchy中。
效果图

这里写图片描述

实现原理

整体思路
  1. 获取指定GameObject上的Animator,并记录其所有的AniamtionClip。
  2. 模拟播放时间,通过AnimationMode.SampleAnimationClip方法设置播放位置。
  3. 添加进度条,单帧执行等方式修改播放时间。
注意细节
  1. 如果模型勾选了Opt
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值