Record and Play 是一款面向 Unity 的场景录制与回放工具,核心用途是让开发者把运行中的场景完整记录下来,用于后续回放、对比或数据分析。它并不是简单的屏幕录像方案,而是以对象为单位记录变换数据与自定义事件,录制结果可以被重新驱动回场景,也可以导出成外部程序可读的文件格式。
插件的关键价值在于“可配置”与“可导出”这两件事:录制帧率与画质可以按场景中的每个对象单独设置,自定义事件与元数据可以精确打点到时间轴上,回放则拥有独立的时间尺度,既能做慢动作,也能把几分钟的录制在几秒内看完,甚至支持负值实现倒放。当前最新版本为 v1.1,发布于 2019 年 8 月 2 日,原始 Unity 版本为 2018.3.1。
Record and Play 版本信息\下载方式
| 版本 | Unity 版本支持 | 提供下载方式 | 更新日期 | |
| 1 | v1.1 | 2018.3.1及更高 | 百度网盘+夸克网盘 | 2019-08-02 |
| Unity版本 | 内置渲染管线 | 通用渲染管线(URP) | 高清渲染管线(HDRP) | |
| 1 | 2018.3.1 | 兼容 | 未标注 | 未标注 |
技术细节
逐对象录制参数与自定义事件
Record and Play 允许开发者按对象(Per Object)调整录制所使用的帧率与画质,也就是说场景中不同对象可以采用不同的采样密度,从而针对具体使用场景做取舍——需要精细还原的角色可以高频采样,静态或次要对象则可以降低开销。在此基础上,插件支持创建自定义事件(Custom Events),既可以绑定到单个对象,也可以挂载到整段录制上,用于在时间轴中标记关键细节的时间戳。录制本身及其关联对象还支持写入元数据(Metadata),便于汇总与归纳对项目真正重要的信息。
回放时间尺度与回放区域变换
回放环节使用独立于场景的时间尺度,这一设计让多种效果变得简单直接:调慢可以得到慢动作效果,调快则能在几秒内浏览数分钟的录制内容;时间尺度还可以设为负值,使整段录制反向播放。回放所使用的区域(Replay Area)支持平移、旋转与缩放,开发者可以方便地把它摆放到场景中的合适位置与朝向。用于回放的对象也可以由开发者自行指定,从而实现诸如竞速游戏中常见的“幽灵车”(Ghost)效果——用同一段录制数据代表某条赛道的最佳单圈。此外,开发者可以提供自定义事件处理器(Custom Event Handlers),在回放进行到录制时记录的时间点时被调用。
编辑器内回放与自定义编辑器窗口
插件提供了自定义编辑器窗口(Custom Editor Windows),录制可以通过这些窗口来构建,回放也可以直接在编辑器内进行,无需真正进入运行模式播放场景。对于需要反复比对录制结果、调整节奏的调试场景,这一能力省去了大量来回启停的时间。
导出格式:JSON、CSV、Unity 动画剪辑与二进制
录制可以单条或打包(Bundled)导出为 JSON、CSV 等不同文件格式,方便开发者用其他工具对录制内容及其包含的各类数据做分析。录制还可以导出为 Unity 的动画剪辑(Animation Clips),直接接入 Unity 自身的动画系统使用。除此之外,插件提供了一种自定义二进制格式,基于 protobuf 与 deflate 算法实现高效的存储与传输,该格式可被其他程序导入。插件附带已编写文档的 protobuf 文件,开发者只需执行一条命令,就能用自己熟悉的语言(C++、Java、Golang、Python、Dart 等)构建出录制对象的表示,从而在几分钟内写出一个能够导入并分析游戏导出录制的程序。
版本 1.1 更新内容
v1.1 的更新集中在导出能力与工程规范性上:新增把录制导出为 Unity 动画剪辑的能力;为 .rap 文件制作了自定义 Inspector;修复了导入无名称录制时失败的问题,此类录制现在会以 “Unnamed” 名称导入;新增用于编辑器专属编译的 #define 指令,并弃用了 EliCDavis.RecordAndPlay.Recording.SaveToAssets(),原因是该方法依赖编辑器功能,后续版本需改用 EliCDavis.RecordAndPlay.Editor.RecordingUtil.SaveToAssets() 来实现相同功能。
兼容性
Record and Play v1.1 的原始 Unity 版本为 2018.3.1,发布于 2019 年 8 月 2 日。素材未标注通用渲染管线(URP)与高清渲染管线(HDRP)的兼容情况,SRP 相关管线下的表现需自行验证。插件以录制与回放数据为核心,不涉及渲染管线的定制,因此在传统内置渲染管线项目中接入的阻力较小。






评论(0)