1. 项目概述为什么Unity Recorder是开发者的必备工具如果你正在用Unity做项目无论是游戏开发、虚拟仿真还是产品演示大概率都遇到过需要录制视频的时候。可能是要给甲方展示一个酷炫的玩法动画可能是要记录一个偶现的Bug也可能是要制作一段宣传用的高光集锦。这时候你第一个想到的可能是去下载一个第三方录屏软件比如OBS或者Bandicam。但很快你就会发现用外部软件录Unity尤其是编辑器里的内容简直是自找麻烦录出来的视频帧率不稳、画面撕裂、UI界面和游戏视图混在一起后期剪辑还得对齐音画费时费力。Unity Recorder就是来解决这个痛点的。它不是外部软件而是Unity编辑器的一个官方扩展包。简单来说它让你能直接从Unity内部以近乎无损的质量录制游戏视图、特定摄像机视角甚至是Timeline动画序列并直接输出成MP4、GIF、PNG序列等十几种格式。我用了这么多年最大的感受就是它把“录制”这个动作从后期制作环节无缝集成到了开发工作流里。你不用再切换窗口、调整参数、担心兼容性一切都在熟悉的Unity编辑器里完成。对于新手它能帮你快速产出高质量的项目演示对于老手它能成为自动化测试、资产预览生成、宣传素材制作的利器。今天这篇教程我就从一个资深开发者的角度带你从零开始彻底玩转Unity Recorder从最基础的Timeline录制到高级的独立窗口录屏再到各种输出格式的细节调优一次全部讲透。2. 核心需求解析你的录制场景决定了工具用法在动手之前我们得先想清楚你到底要录什么不同的录制目标对应着Unity Recorder里完全不同的工作流和配置。盲目操作只会事倍功半。根据我多年的经验用户的录制需求大致可以归纳为以下几类你可以对号入座2.1 录制Timeline动画序列这是Unity Recorder最经典、最强大的应用场景。假设你花了一周时间在Timeline里精心编排了一段角色从走到跑、再到释放技能的电影级过场动画。你想把它导出成视频文件发给策划审核或者放入宣传片。用Recorder录制Timeline可以确保每一帧都精准对应Timeline的播放进度完全不受游戏运行时性能波动的影响。你甚至可以在录制时暂停游戏逐帧调整TimelineRecorder会忠实地记录下最终调整好的每一帧。这比在Play模式下用外部软件录制要可靠和精确得多。2.2 录制游戏运行实况你想录制一段实际的游戏过程比如一个完整的关卡流程或者玩家与NPC的实时交互。这时你需要录制的是Game视图在Play模式下的动态画面。Unity Recorder可以挂在场景里随着游戏运行而录制。这里的关键是平衡录制质量和性能。高分辨率、高帧率的录制本身会消耗CPU和GPU资源可能会影响游戏本身的运行帧率导致录出来的视频“卡顿”。我们需要针对性地进行配置。2.3 录制特定摄像机视角有时候你不想录整个游戏画面只想录某个特定摄像机的视角。比如一个第三人称游戏你想单独录制主角的背部跟随视角或者一个飞行模拟器你想录制驾驶舱内的仪表盘视角。Unity Recorder支持你指定场景中的任何一个摄像机作为录制源这样就能排除UI界面、其他摄像机的干扰得到纯净的视角画面。这对于制作分镜、特效预览或者UI操作教程非常有用。2.4 多格式同时输出与自动化这是一个进阶需求但非常提升效率。比如你需要同时生成一个高清的MP4视频用于存档一个低分辨率的GIF动图用于即时通讯软件分享还要一套PNG序列帧给后期团队做特效合成。手动录三次太慢了。Unity Recorder允许你在一个录制会话Session中添加多个“Recorder”实例每个实例独立配置输出格式和参数然后一键同时录制。更进一步你还可以通过脚本调用Recorder的API将录制流程集成到自动化构建管线中每次打包后自动生成宣传视频。3. 环境准备与Recorder安装工欲善其事必先利其器。使用Unity Recorder的第一步是确保它被正确安装到你的项目中。它不是一个默认内置的功能需要通过Package Manager来添加。3.1 确认Unity版本与兼容性Unity Recorder作为一个官方软件包其功能与Unity版本紧密相关。通常较新的Recorder版本会依赖较新的Unity编辑器功能。我个人的建议是Unity 2021 LTS 或更新版本这是最理想的环境。高版本Unity对Recorder的支持更完善特别是对于H.264编码MP4格式的硬件加速支持更好。Unity 2019/2020 LTS也可以使用但可能需要安装特定版本的Recorder包且某些高级功能如某些编码器选项可能受限。 你可以在Unity Hub中查看和管理你的编辑器版本。3.2 通过Package Manager安装安装过程非常简单全程在编辑器内完成打开你的Unity项目。在顶部菜单栏点击Window Package Manager。在Package Manager窗口左上角点击 Packages下拉菜单选择Unity Registry。这样会列出所有Unity官方维护的软件包。在列表中找到“Unity Recorder”。你可以使用右上角的搜索框快速定位。点击选中它在右侧详情面板中点击Install按钮。注意有时网络原因可能导致列表加载缓慢或失败。如果找不到可以尝试点击窗口左上角的“”号选择“Add package by name...”然后输入com.unity.recorder来直接安装。确保你安装的是最新稳定版。3.3 安装后的界面与验证安装完成后你通常不需要重启Unity。你可以通过以下方式验证安装成功菜单栏在Window General下应该能看到Recorder和Recorder Window两个新选项。Recorder Window点击Window General Recorder Window会打开Recorder的主控制面板。第一次打开时它可能是一个空面板这是因为你还没有创建任何录制任务。安装完成后我们就算把“录音棚”搭好了。接下来我们分别深入最常用的两种录制模式Timeline录制和Game视图录制。4. 核心功能一Timeline动画序列录制详解用Recorder录制Timeline是我认为性价比最高的用法。它能产出帧精度完美、画质可控的成片特别适合制作预告片、技能演示、过场动画等“确定性”内容。4.1 创建与关联Recorder Track录制Timeline不是简单地点“录制”按钮而是要将Recorder作为Timeline的一条轨道Track来使用。这样录制范围、开始和结束时间就能与Timeline的播放头完美同步。打开Timeline窗口如果你的场景中还没有Timeline实例可以创建一个空的GameObject然后通过Window Sequencing Timeline打开窗口并将该GameObject拖入以创建Timeline资产。添加Recorder Track在Timeline窗口的轨道区域右键选择Add Unity Recorder Track。这条轨道本身不产生视觉内容它只是一个“控制器”。添加Recorder Clip在刚添加的Recorder Track上右键选择Add Recorder Clip。你会看到轨道上出现了一个蓝色的片段Clip。配置Recorder Clip选中这个蓝色的Clip在Inspector面板中你会看到它的详细配置。这是核心步骤。4.2 Recorder Clip关键参数配置选中Recorder Clip后Inspector面板的配置决定了输出结果。我们来逐一拆解关键参数Output Format输出格式这是第一个要决定的。对于Timeline录制我首推MP4或WebM格式因为它们直接生成单个视频文件方便分享。如果需要后期合成则选择PNG或EXR序列帧。Capture捕获源选择“Targeted Camera”。然后将你场景中用于渲染Timeline动画的主摄像机拖拽到下面的“Camera”字段中。千万不要选“Game View”因为Timeline播放时Game View可能包含编辑器UI而“Targeted Camera”能确保只录制纯净的摄像机画面。Output Resolution输出分辨率建议选择“Custom”然后手动输入你需要的分辨率比如1920x1080。这能确保输出尺寸固定不受编辑器窗口大小的影响。Frame Rate帧率这里有个关键技巧。务必选择“Constant”模式并将帧率设置为与Timeline的帧率一致默认是60。选择“Constant”意味着Recorder会以恒定的时间间隔如1/60秒采样一帧而不是每一游戏帧都采样。这对于Timeline这种时间驱动而非帧驱动的动画来说能保证动画速度的绝对准确避免因性能波动导致视频时长不对。Frame Rate Playback帧率播放选择“Speed”。这能确保录制的视频播放速度与Timeline预览速度一致。Recording Range录制范围在Recorder Clip上你可以直接拖动它的起始和结束位置来匹配Timeline中你想录制的具体段落。比如你只想录制第100帧到第250帧的动画就把Recorder Clip调整到这个区间。4.3 执行录制与输出配置完成后录制就非常简单了确保Timeline的播放头在Recorder Clip范围之前。点击Timeline窗口上的播放按钮。Timeline会自动播放当播放头进入Recorder Clip范围时录制自动开始离开时自动结束。录制完成后Unity会弹出一个提示框告诉你视频文件保存的路径。默认路径在项目文件夹的Assets/Recordings下。实操心得在正式录制长片段前务必先用一个几秒钟的短片段测试一下。检查输出视频的尺寸、帧率、画质是否符合预期。这样可以避免长达一小时的录制完成后才发现参数设错前功尽弃。另外录制时建议关闭编辑器里不必要的窗口如Console、Profiler并确保电脑电源模式为高性能以减少录制过程中出现意外卡顿的几率。5. 核心功能二独立窗口与Game视图录制实战除了绑定TimelineRecorder更常用的模式是通过独立的Recorder窗口进行灵活录制。这种方式适用于录制游戏实况、自由视角探索或者当你没有使用Timeline时。5.1 打开与理解Recorder窗口通过Window General Recorder Window打开主控制面板。这个窗口是你的“录制控制台”。它的核心是一个录制会话Session列表每个会话可以包含多个录制器Recorder这些录制器可以同时工作。新建录制会话点击窗口左上角的“Add New Recorder”按钮。你会看到一个列表让你选择录制类型。对于录制游戏画面我们选择“Movie”。这会创建一个用于录制视频的Recorder。认识核心配置组新建的Recorder会展开一个详细的配置面板。这些配置逻辑上分为几个组Input输入源决定录什么Game视图、特定摄像机、渲染纹理等。Output Format输出格式决定存成什么MP4, GIF, PNG等。Output File输出文件决定存哪里、叫什么名字。其他格式特有设置根据你选择的格式下方会出现更多细化选项如编码器、画质、颜色空间等。5.2 配置Game视图录制假设我们要录制Play模式下的游戏实况设置Input在“Input”下拉菜单中选择“Game View”。这意味着Recorder会捕获整个Game视图窗口的内容。如果你有多个显示器Game视图被拖到了哪个显示器上它就录哪个。设置Output Format选择“MP4”。这是最通用的视频格式。设置Output Resolution这里有三个选项需要根据场景选择“Match Window Size”分辨率跟随Game视图窗口大小实时变化。不推荐会导致视频分辨率不稳定。“Match Source”与输入源Game视图的当前分辨率匹配。如果你在播放前固定了Game视图的分辨率如在Game视图右上角的下拉菜单中选择1920x1080这个选项是合适的。“Custom”手动指定分辨率如1920x1080。这是我最推荐的方式。Recorder会按照你设定的分辨率进行渲染和采样无论Game视图窗口多大输出尺寸都固定且专业。设置Frame Rate对于实时游戏录制选择“Maximum”模式。Recorder会尽力捕获每一游戏帧。但要注意如果你的游戏帧率是60但录制设置为30那么Recorder会每隔一帧录一次。通常设置为60即可如果对文件大小敏感可以设为30。设置Output File可以自定义文件名和存储路径。建议使用{Scene}_{Resolution}_{Frame}这样的命名规则其中{Frame}是自动替换的帧编号方便管理。5.3 执行录制与监控配置好后就可以开始录制了点击Recorder窗口顶部或Recorder条目旁边的“Start Recording”按钮。然后点击Unity编辑器上的Play按钮进入运行模式。此时Recorder已经开始在后台录制。你可以在Recorder窗口看到实时的录制帧数、文件大小等信息。游戏结束后点击Stop Play然后点击Recorder窗口的“Stop Recording”。视频文件会自动生成并保存。注意事项录制性能开销。录制高分辨率、高码率的视频特别是使用软件编码时对CPU压力很大。你可能会发现游戏本身的帧率FPS下降了。为了解决这个问题如果CPU是瓶颈尝试在Recorder设置中降低输出分辨率或帧率。如果显卡支持如NVIDIA的NVENC或AMD的VCE务必在MP4格式的编码器选项中选择“Hardware (Encoder)”。这能将编码工作从CPU转移到GPU专用的编码芯片上对游戏性能的影响微乎其微。这是提升录制体验最关键的一步。6. 输出格式全解析如何为不同场景选择最佳格式Unity Recorder支持丰富的输出格式每种格式都有其特定的用途和优劣。选对格式能让你事半功倍。6.1 视频格式MP4 vs. WebM vs. MOV这是最常用的格式类别用于生成最终交付的视频文件。MP4 (H.264编码)优点通用性之王。几乎所有的播放器、操作系统、视频网站和社交平台都完美支持。文件大小和画质平衡得很好。支持硬件编码性能影响小。缺点编辑性稍弱虽然主流剪辑软件都支持但不如MOV/ProRes那样“友好”。适用场景绝大多数情况下的首选。用于项目演示、提交审核、上传视频网站、即时通讯软件分享。关键设置码率Bit Rate决定画质和文件大小。对于1080p 60fps建议码率设置在10-20 Mbps之间。画质要求高就选CRF恒定质量模式并设一个较低的值如18。WebM (VP8/VP9编码)优点开源、免版权费。在网页端尤其是配合HTML5有很好的支持。通常能提供比同码率H.264更好的画质特别是VP9。缺点硬件编码支持不如H.264广泛编码速度可能较慢。在移动设备和一些本地播放器上兼容性一般。适用场景主要为WebGL构建的内容生成预览视频或用于需要开源解决方案的项目。MOV (ProRes编码)优点后期编辑的黄金标准。采用帧内压缩每一帧都是完整画面画质无损对剪辑软件极其友好反复编辑渲染不会损失质量。缺点文件体积巨大。一段几分钟的1080p视频文件可能达到几十GB。不适合直接分发。适用场景当你需要将录制内容交给专业后期团队进行调色、特效合成时请务必输出ProRes格式的MOV文件。6.2 图像序列格式PNG vs. EXR当你不想要一个压缩过的视频而需要每一帧的原始图像时就选择序列帧格式。PNG序列优点无损压缩画质完美文件大小相对合理。支持透明通道Alpha Channel。几乎任何软件都能打开。缺点相比视频文件管理成千上万个PNG文件比较麻烦。适用场景需要抠像合成利用透明通道需要单帧精修某些游戏引擎或平台要求上传序列帧而非视频。EXR序列优点高动态范围HDR图像格式。能存储远超标准RGB范围的颜色和亮度信息32位每通道。是电影和高端视觉特效行业的标配。缺点文件体积非常大需要专业的软件如Nuke, After Effects才能正确查看和编辑。适用场景项目涉及HDR渲染管线HDRP需要保留完整的光照和颜色信息用于后期调色制作电影级或超高画质的内容。6.3 动态图与专业格式GIF vs. PSDGIF优点文件小无需播放器在网页和聊天中传播极方便。缺点颜色限制在256色画质差不支持半透明文件体积随时长增长很快。适用场景仅用于制作短小的、循环播放的预览动图比如展示一个UI动画效果、一个角色的Idle动作用于插入文档或在线聊天。关键设置严格控制分辨率通常不超过500px宽度、颜色数和帧数以控制文件大小。PSD (Photoshop文档)优点Recorder可以将每一帧作为图层输出到一个多图层的PSD文件中。这在需要将动画导入Photoshop进行逐帧处理或制作Sprite动画时非常有用。适用场景2D动画工作流需要将3D渲染结果在Photoshop中与2D元素结合。格式选择速查表使用场景推荐格式关键理由通用演示、提交审核MP4 (H.264)兼容性最好平衡画质与体积交付后期特效合成MOV (ProRes)或EXR序列编辑友好画质无损或保留HDR信息网页嵌入预览WebM或GIF短网页兼容性好或传播方便需要透明背景PNG序列支持Alpha通道制作Sprite/2D素材PSD直接生成分层文件方便Photoshop处理7. 高级技巧与性能优化实战掌握了基本操作后下面这些技巧能让你用得更顺手录得更高效。7.1 多Recorder并行录制这是Recorder的一个杀手级功能。例如你想在一次游戏过程中同时得到一份4K高清存档视频和一份480p的快速预览GIF。在Recorder窗口中点击“Add New Recorder”两次创建两个Recorder实例。第一个配置为MP4格式分辨率3840x2160高码率保存路径为“Final_Video”。第二个配置为GIF格式分辨率854x480低颜色数保存路径为“Preview_GIF”。两个Recorder的Input都设为“Game View”。点击顶部的“Start Recording”按钮两个Recorder会同时启动。你玩一遍游戏两种格式的文件就同时生成了。这个功能极大地节省了时间特别适合需要为同一内容生成多种用途素材的情况。7.2 通过脚本控制录制对于自动化流程比如在 nightly build每日构建后自动录制一段游戏视频就需要用脚本控制。using UnityEngine; using UnityEditor.Recorder; using UnityEditor.Recorder.Encoder; using UnityEditor.Recorder.Input; public class AutoRecorder : MonoBehaviour { void Start() { // 1. 创建Recorder控制器 var controllerSettings ScriptableObject.CreateInstanceRecorderControllerSettings(); var recorderController new RecorderController(controllerSettings); // 2. 创建一个视频录制设置 var videoRecorder ScriptableObject.CreateInstanceMovieRecorderSettings(); videoRecorder.name My Video Recorder; videoRecorder.Enabled true; // 3. 配置输入录制Game视图 var gameViewInput new GameViewInputSettings { OutputWidth 1920, OutputHeight 1080 }; videoRecorder.InputsSettings new[] { gameViewInput }; // 4. 配置输出MP4格式 videoRecorder.OutputFormat MovieRecorderSettings.VideoRecorderOutputFormat.MP4; videoRecorder.VideoBitRateMode VideoBitrateMode.High; // 设置输出路径可以使用变量 videoRecorder.OutputFile Assets/Recordings/AutoRecord_ System.DateTime.Now.ToString(yyyyMMdd_HHmmss) .mp4; // 5. 将录制设置添加到控制器 controllerSettings.AddRecorderSettings(videoRecorder); // 6. 设置录制时长例如录制10秒 controllerSettings.SetRecordModeToSingleFrame(0); // 从第0帧开始 // 假设游戏运行在60FPS10秒就是600帧 controllerSettings.FrameRate 60.0f; controllerSettings.CapFrameRate true; // 注意脚本中控制时长更常用的方式是配合协程或计时器来停止这里是一个简化示例。 // 7. 开始录制 recorderController.PrepareRecording(); recorderController.StartRecording(); // 8. 在合适的时候停止录制例如用协程 // StartCoroutine(StopRecordingAfterSeconds(10f, recorderController)); } // IEnumerator StopRecordingAfterSeconds(float seconds, RecorderController controller) // { // yield return new WaitForSeconds(seconds); // controller.StopRecording(); // } }提示上述脚本需要在Editor命名空间下运行通常放在Editor文件夹下。更完整的自动化会涉及构建后回调PostProcessBuild等。7.3 性能优化与画质平衡录制尤其是高规格录制是资源消耗大户。以下是关键的优化点首选硬件编码在MP4格式的设置中找到“Encoder”选项毫不犹豫地选择“Hardware (Encoder)”如果你的显卡支持。这是减少性能影响最有效的手段。分辨率与帧率的权衡不是所有录制都需要4K 60FPS。对于内部审核或快速分享1080p 30fps完全足够能大幅降低编码压力和文件体积。关闭不必要的录制如果场景中有多个摄像机但Recorder只录其中一个确保其他摄像机的Camera组件的RenderType不是Base或Overlay或者直接禁用它们以减少不必要的渲染开销。管理录制时长避免无节制地长时间录制。规划好需要录制的片段用Recorder Clip或脚本精确控制起止时间。长时间录制会产生巨大的中间缓存文件可能撑满你的硬盘。8. 常见问题与排查技巧实录即使工具再强大在实际操作中还是会遇到各种“坑”。下面是我和同事们踩过之后总结出来的常见问题清单希望能帮你快速排雷。8.1 录制出来的视频是黑屏/花屏这是最常见的问题之一。检查输入源确认Recorder的“Input”设置正确。如果是录特定摄像机确保该摄像机在场景中已启用并且渲染路径正确。如果是录Game视图确保在播放模式下Game视图是激活的且可见。检查摄像机渲染目标如果摄像机将其输出渲染到了某个Render Texture渲染纹理那么Recorder录制该摄像机时录到的就是这个Render Texture的内容。如果这个Render Texture没有正确设置或清空就会是黑屏。确保摄像机渲染到屏幕targetTexture为null。检查HDRP/URP设置如果你在使用HDRP或URP有时需要额外的设置。确保Recorder的“Capture Alpha”选项如果存在与你的渲染管线兼容。在HDRP中可能需要启用“Custom Pass”或检查后处理效果是否影响了最终输出。尝试软件编码如果硬件编码导致花屏出现绿色块或马赛克可能是显卡驱动或编码器兼容性问题。暂时切换回“Software (Encoder)”试试。8.2 录制视频卡顿、掉帧但游戏运行流畅这通常意味着编码环节成了瓶颈。确认硬件编码已开启如前所述这是第一检查项。降低录制规格尝试将输出分辨率从4K降到1080p或将帧率从60fps降到30fps。关闭其他占用资源的程序特别是浏览器尤其是Chrome标签页多的时候、其他录屏软件、视频播放器等。检查硬盘速度录制高码率视频时数据会高速写入硬盘。如果硬盘是低速的机械硬盘尤其是5400转的笔记本硬盘可能会成为瓶颈。尽量将输出路径设置到SSD硬盘上。8.3 录制的视频没有声音Unity Recorder默认不录制音频。这是一个设计选择因为音频录制需要额外的配置。添加音频输入在Recorder的设置中你需要手动添加一个音频输入源。在MP4或MOV格式的Recorder设置里找到“Audio”或“Audio Input”选项。选择“Audio Mixer”可以录制整个游戏的混合音频输出推荐。或者选择特定的“Audio Listener”来录制某个监听器的声音。检查音频设备确保系统的默认音频播放设备工作正常。8.4 输出文件体积异常巨大检查格式如果你不小心输出成了PNG序列或ProRes MOV文件体积必然巨大。确认你选择的是MP4或WebM这类压缩格式。检查码率设置MP4格式中如果选择了“Constant Bit Rate (CBR)”模式并设置了一个非常高的码率比如100 Mbps文件就会很大。对于1080p10-20 Mbps的码率已经能提供非常好的画质。可以尝试使用“Constant Quality (CRF)”模式并将CRF值调高如23-28值越大画质越低、文件越小。检查分辨率确认分辨率没有误设为8K等不合理的数值。8.5 Recorder窗口找不到或按钮灰色确认已安装回到Package Manager确认Unity Recorder已成功安装并启用。检查Unity版本极老的Unity版本可能不支持新版的Recorder。考虑升级Unity或寻找历史版本的Recorder包。编辑器布局问题有时窗口可能被意外关闭或拖拽到标签页后面。尝试通过Window General Recorder Window重新打开。问题排查速查表现象可能原因解决方案黑屏输入源错误摄像机渲染目标为RenderTextureHDRP/URP兼容性问题检查Input设置确保摄像机渲染到屏幕尝试软件编码查阅管线特定文档卡顿掉帧编码瓶颈硬盘慢系统资源不足开启硬件编码降低分辨率/帧率输出到SSD关闭无关程序无声音未配置音频输入在Recorder设置中添加“Audio Mixer”输入文件巨大格式为PNG/EXR/ProRes码率设置过高换用MP4/WebM调整码率或使用CRF模式无法录制Recorder未安装不在Play模式通过Package Manager安装进入Play模式后再开始录制最后我个人最常用的一套“万能配置”是MP4格式 硬件编码 1920x1080分辨率 60fps (Maximum) 音频输入(Audio Mixer) 自定义文件命名。这套配置在画质、性能和兼容性上取得了很好的平衡能满足我90%以上的录制需求。你可以以此为基础根据你的具体项目进行调整。记住在开始重要的长时录制前做一个简短的测试片段永远是性价比最高的好习惯。