CRIWARE Unity Plugin Manual  Last Updated: 2025-05-08
CRI Ware for Unity ChangeLog

[3.12.00]-2025-04-07

  • C# Script
    • 2.44.29
  • Library
    • 2.44.10
  • 原生库
    • Atom : 2.29.293
    • Base : 2.55.22
    • File System : 2.88.13
    • Mana : 2.29.18

设计变更

  • [Mana][all_platform] 删除了 CriManaMovieMaterial 继承组件的 MaxFrameDrop 设置中不推荐使用的“Infinite”选项。

新增功能

  • [all_module][all_platform] 在Error Handler中添加了通过标准输出输出日志的选项。
  • [Atom][all_platform] 为 Atom Timeline Clip 添加了 Clip-In 功能支持(进入Clip时可从中间开始播放音频)。
  • [Atom][pc] 添加了获取当前音频输出设备的 API。
    • CriAtomEx.GetOutputAudioDeviceId_PC
    • CriAtomEx.GetOutputAudioDeviceIndex_PC
  • [Atom][all_platform] 添加了 CriAtomExAsrRack.Default 属性。
  • [Atom][all_platform] 对 CriAtomExAcf.AcfDspBusInfo 结构体添加了以下成员:
    • speakerMapping
    • outputType
    • outputOptions
  • [Mana][all_platform] 添加了对 AV1 编解码器扩展的支持。

问题修复

  • [Mana][editor] 修复了在Unity编辑器中预览播放Mana Timeline轨道时反复更改Clip设置会有几率导致编辑器停止响应的问题。
  • [Atom][editor] 修复了在Play Mode下显示 Atom Source 属性面板可能导致运行库进入错误状态的问题。
  • [Atom][all_platform] 修复在主线程外初始化运行库时会发生异常的问题。

问题修复

  • [Atom][editor] 修复了当构建目标不是Standalone时,CRI Atom Timeline 扩展不会渲染波形预览的问题。

[3.11.01]-2025-01-31

  • C# Script
    • 2.43.67
  • Library
    • 2.43.33
  • 原生库
    • Atom : 2.28.272
    • Base : 2.54.34
    • File System : 2.87.27
    • Mana : 2.28.25

设计变更

  • [Atom][all_platform] CriAtomExPlayer 现在可以在播放中挂载和断开 CriAtomExOutputAnalyzer。

新增功能

  • [Atom][all_platform] 添加了 CriAtomExAcb.IsAttachedAwbFile(string) 方法。
  • [Atom][android] 添加了以下函数来获取和设置Server处理线程的优先级:
    • CriAtom.GetThreadPriorityANDROID()
    • CriAtom.SetThreadPriorityANDROID()
  • [Atom][all_platform] 添加了以下函数以分别获取用于 Ambisonic、基于声道、基于对象和Passthrough播放的ASR Rack ID:
    • CriAtomExAsrRack.GetAmbisonicRackId()
    • CriAtomExAsrRack.GetChannelBasedAudioRackId()
    • CriAtomExAsrRack.GetObjectBasedAudioRackId()
    • CriAtomExAsrRack.GetPassThroughRackId()

问题修复

  • [Mana][all_platform] 修正了在项目色彩空间设置变更后,视频可能无法正确渲染的问题。
  • [Fs][android] 修正了文件系统初始化处理以支持安卓系统的Game Activity。
  • [Mana][all_platform] 修复启用Headless模式时会出现编译错误的问题。

[3.11.00-web]-2024-12-04

  • C# Script
    • 2.43.50
  • Library
    • 2.43.23
  • 原生库
    • Atom : 2.28.259
    • Base : 2.54.32
    • File System : 2.87.22
    • Mana : 2.28.16

[3.11.00]-2024-11-13

  • C# Script
    • 2.43.46
  • Library
    • 2.43.19
  • 原生库
    • Atom : 2.28.246
    • Base : 2.54.32
    • File System : 2.87.21
    • Mana : 2.28.16

设计变更

  • [Atom][android] 安卓平台的音频播放延迟检测功能现已废止。
  • [Atom][editor] 修改了 CriWare.CriAtomWindowPrefs 设置资产位置,使其固定在 Assets 文件夹下生成。
  • [Atom][all_platform] 添加了以下扬声器映射定义:

新增功能

  • [Atom][android] 添加了以下类变量以用于安卓平台上的音频后台播放。
    • - CriWare.CriAtomServer.EnableBackgroundPlayback_ANDROID
  • [Atom][ios] 添加了以下用于iOS上的后台音频播放的API。
  • [Atom][ios] 在 CriWareInitializer 组件中添加了一个iOS专用选项,用于启用或禁用ADX对于iOS音频中断通知的处理。
  • [Atom][all_platform] 添加了 CriWare.CriAtomExPlayer.SetStartTimeMicro .
  • [Atom][pc][macosx][linux] 添加了用于获取Cue内波形数据的API。
  • [Atom][Mana][all_platform] 添加了Atom和Mana库初始化/终止前后的事件:
    • CriAtomPlugin.OnBeforeInitialize
    • CriAtomPlugin.OnInitialized
    • CriAtomPlugin.OnBeforeFinalize
    • CriManaPlugin.OnBeforeInitialize
    • CriManaPlugin.OnInitialized
    • CriManaPlugin.OnBeforeFinalize
    • CriManaPlugin.OnFinalized
  • [Fs][all_platform] 在“Project Setting -> CRIWARE -> Editor -> Common”中添加了File System相关的信息。可以设置的项目请参照CriFsConfig。
  • [Atom][all_platform] 在CueInfo结构体中添加了选择器相关信息。以下是具体添加的成员变量:
    • CueInfo.selectorIndex
  • [Atom][all_platform] 向CriWareInitializer中添加了以下用于关闭Atom声音输出的设置:
    • CriWareInitializer.CriAtomConfig.enableAtomSoundDisabledMode
    • CriWareInitializer.CriAtomConfig.enableAtomSoundDisabledModeLinux
  • [Atom][all_platform] 添加了 CriWare.CriAtomEx.CueInfo.pitch 字段。
  • [Mana][all_platform] 新增在 Unity Profiler 中查看某些 Mana 函数的调用时间的功能。
    • 需要禁用此功能时,请添加以下宏定义:
    • CRI_DISABLE_PROFILER_EXTENSION
  • [Atom][Fs][Mana][all_platform] 添加了在 Unity Profiler 中确认每个 CRIWARE 模块的内存使用情况的功能。
  • [Atom][pc] 添加了在 PC 环境中使用 CriAtomOutputDeviceObserver 检查音频设备是否存在的功能。

问题修复

  • [all_module][editor] 修复了在 Unity 2023 及更高版本环境中出现 Obsolete API 警告的问题。
  • [all_module][editor] 修复了在Editor中重新加载Assembly时以下属性可能处于不正确状态的问题。
    • CriWare.CriFsPlugin.isInitialized
    • CriWare.CriAtomPlugin.isInitialized
    • CriWare.CriManaPlugin.isInitialized
  • [Mana][all_platform] 修复了视频播放完毕后不执行Stop,并在同一播放器上播放不同分辨率的视频时渲染出错的问题。
  • [Mana][android] 修复了在启用Memory Tagging Extension功能的设备上销毁视频播放器时有几率发生崩溃的问题。
  • [all_module][editor] 修复了版本信息窗口中Linux库信息不被显示的问题。

其他

  • [Mana][ios][android][macosx] 在一些图形 API 相关的错误信息中添加了详细信息。
  • [Mana][all_platform] 为了防止不必要的代码剥离,删除了VP9库初始化的Reflection调用。
  • [Mana][all_platform] 在Mana Timeline扩展中,对于开始时间前方有准备时间的Mana Clip,改善了从准备完毕状态开始播放的即时性。

[3.10.01]-2024-04-26

  • C# Script
    • 2.42.46
  • Library
    • 2.42.32
  • 原生库
    • Atom : 2.27.353
    • Base : 2.53.16
    • File System : 2.86.6
    • Mana : 2.25.29

新增功能

问题修复

  • [Atom][editor] 修复了在Atom Browser中、以及CriAtomSource的Inspector面板中无法对WebGL专用串流Cue执行预览播放​​的问题。
  • [Atom][editor] 修复了在Atom Browser中无法预览播放WebGL音频数据的问题。
  • [Mana][android] 修复了当图形 API 设置为 OpenGLES3 时,在少数配备 Mali GPU 的设备上无法正确绘制视频播放内容的问题。

其他

  • [Atom][all_platform] 更新了 CriAtomExPlayer.SetDspTimeStretchRatio 参数设置范围的注释。
  • [all_module][editor] 如果相应的模块不存在,版本窗口中的页面切换按钮现在将被禁用。

[3.10.00]-2024-02-06

  • C# Script
    • 2.42.33
  • Library
    • 2.42.25
  • 原生库
    • Atom : 2.27.320
    • Base : 2.53.16
    • File System : 2.86.5
    • Mana : 2.25.26

设计变更

  • [Atom][all_platform] 已弃用 CriWare.CriAtomExAsrRack.SpeakerMapping 并将其替换为 CriWare.CriAtom.SpeakerMapping。

新增功能

问题修复

  • [Atom][ios] 修复了使用 Unity 标准音频时,出现来电或 Siri 等声音中断时声音可能无法返回的问题。
  • [Mana][pc][ios][macosx] 修复了播放 Sofdec.Prime 或 VP9 视频时,如果在大分辨率视频后播放小分辨率视频,画面渲染会紊乱的问题。
  • [Mana][android] 修复了使用 GLES2 作为图形 API 时无法正确显示 H.264 视频的问题。
  • [Atom][webgl] 修复了iOS版Safari上切换回浏览器画面时声音播放可能不会恢复的问题。
  • [Mana][webgl] 修复了在 FireFox 上播放带音频的视频时声音会卡顿的问题。
  • [Mana][all_platform] 修正了对于继承了 CriManaMovieMaterial 的组件,如果对其执行 PlayerManualFinalize() (例如在编辑器扩展功能中),则自定义纹理设置会被覆盖为 None 的问题。

[3.09.02]-2023-12-15

  • C# Script
    • 2.41.109
  • Library
    • 2.41.45
  • 原生库
    • Atom : 2.26.382
    • Base : 2.52.27
    • File System : 2.85.1
    • Mana : 2.24.52

新增功能

  • [Mana][all_platform] 在 CriWareInitializer 组件中添加了 [Use Streamer Manager] 设置项。

问题修复

  • [Atom][editor] 修复了启用用户 PCM 输出模式时切换 CriAtomServer.EnableAutoConsumePcmOutput 设置可能导致崩溃的问题。
  • [Atom][all_platform] 修复了在 Atom Timeline扩展中,Clip的第一帧和最后一帧被识别为Clip外部,导致对应时间的声音不被播放的问题。
  • [Atom][editor] 修复了编辑器上播放大量声音时 CRI Profiler 内容的显示会被暂时破坏的问题。
  • [Mana][all_platform] 修复了CriManaMovieMaterial中新材质的创建可能失败的问题。
  • [Mana][ios] 修正了 Sofdec.Prime 和 VP9 编码视频播放的绘制处理,以提高稳定性。

[3.09.01]-2023-08-31

  • C# Script
    • 2.41.90
  • Library
    • 2.41.32
  • 原生库
    • Atom : 2.26.332
    • Base : 2.52.25
    • File System : 2.85.1
    • Mana : 2.24.38-0.1

新增功能

问题修复

  • [all_module][all_platform] 在 CriWareInitializer 组件的库初始化过程中新增了对初始化参数的验证。
  • [Mana][all_platform] 修复了 Mana 时间轴扩展中,在准备 ManaClip 播放时将 Director.time 更改至一个没有Clip的位置,会使 ManaTrack 处于无效状态并导致视频无法播放的问题。
  • [Mana][all_platform] 修复了单独使用 CriWare.CriMana.Player 类时可能无法释放内部资源的问题。在此修正之后,当从脚本生成Player时,会在场景中生成 CriManaMovieResources GameObject。
  • [Atom][all_platform] 修复了使用 CriWare.CriAtomExAcbLoader 加载启动失败会出现内存泄漏的问题。
  • [Mana][all_platform] 修复了 Mana 时间轴扩展中,如果在启用CriManaTrack的FrameSync设置的情况下连续播放Mana Clip,则其中后续视频会被快进播放的问题。
  • [Mana][all_platform] 修复了执行下列类似处理时抛出异常的问题。
  • [Mana][all_platform] 修复了 Mana Timeline扩展中,在播放时在同一ManaClip范围内向前跳过或者回退播放位置时,视频播放不反映此位置变化的问题。 禁用以下 CriManaTrack 设置可以恢复到旧版本做法。
    • Check Pos Within Clip
  • [Mana][all_platform] 修正了没有选定PlayableDirector时不能编辑CriManaClip的问题。
  • [Atom][editor] 修正了在Atom Timeline扩展功能上进行预览播放时结束CRI库的运行会引起崩溃的问题。
  • [Mana][macosx] 修复了 Alpha 视频的 YUV 通道分辨率与 Alpha 通道不同导致渲染内容出现瑕疵的问题。
  • [Mana][ios] 修复了播放 Sofdec.Prime 或 VP9 编码视频时帧乱序并显示的问题。当应用程序负载较高时会发生这种情况。
  • [Mana][pc][android] 修正了在VR平台上播放动画可能只在单侧眼睛显示的问题。
  • [Atom][all_platform] 修正了对 CriWare.CriWareInitializer 指定的 CriWare.CriAtomConfig.InGamePreviewConig 设置不被反映的问题。
  • [Atom][all_platform] 修正了即使对CriAtomListener组件执行独占性启用,其他Listener仍然可能会被开启的问题。
  • [Mana][ios] 修复了播放 Sofdec.Prime 或 VP9 编码视频时 CriWare.CriMana.Player.GetDisplayedFrameNo 返回错误值的问题。
  • [Atom][editor] 修复了执行以下操作后 CriWare.CriAtomExPlayback.GetTimeSyncedWithAudio 函数无法正常動作的问题:
    • 在Editor中启动Play mode
    • 暂停Play mode
    • 退出Play mode而不取消暂停

[3.09.00]-2023-06-29

  • C# Script
    • 2.41.62
  • Library
    • 2.41.24
  • 原生库
    • Atom : 2.26.305
    • Base : 2.52.25
    • File System : 2.85.1
    • Mana : 2.24.38

设计变更

  • [Atom][all_platform] 对于以下API,增加了用于表示ACF注册是否成功的返回值。
  • [Atom][all_platform] 从 Library Initializer 中删除了 VR Mode 标记。
  • [all_module][webgl] sofdec2.worker.wasm.bin 的内容现在被封装在 sofdec2.worker.wajs 中。 从旧版插件更新后,请手动删除 sofdec2.worker.wasm.bin。
  • [all_module][webgl] 修改了构建处理,从而在项目构建的库文件复制失败时停止构建。
  • [Atom][ios] 删除了旧的实现中存在的恢复(切至前台)时的休眠处理和相关的插件API。
  • [Atom][all_platform] CriWare.CriAtomExAsr.BusAnalyzerInfo 中每个数组的长度(即最大声道数)从8改为16。
  • [Atom][all_platform] PlatformConfig 结构体,以及将其作为参数的 CriAtomExAsrRack 构造函数已被弃用。请换用继承自 IPlatformConfig 的平台专用结构体类型。

新增功能

问题修复

  • [Mana][webgl] 修正了 CriWare.CriMana.FrameInfo 中的某些字段值不能被正确获取的问题。
  • [Mana][ios] 修正了一个在销毁视频播放器时可能会导致崩溃的潜在问题。
  • [Atom][editor] 修复了使用 Unity Timeline 1.5.2 或更高版本时 CRI Timeline 扩展会发生警告的问题。
  • [Atom][all_platform] 修正了在Atom Timeline中,AtomClip中的播放位置被脚本等方式改变时,播放本身不会跟随位置改变的问题。要恢复以前的行为,请禁用下面的CriAtomTrack设置:
    • Check Position within Clip
  • [Atom][all_platform] 修正了 CriWare.CriAtomEx3dListener.IsDestroyable 方法不能正常执行的问题。
  • [all_module][editor] 修正了Unity 2021.3.23及以上版本中,macOS版插件信息在Version Information窗口中不被显示的问题。
  • [Atom][Mana][all_platform] 修正了 CRI Timeline 扩展中播放时会发生不必要的 GC Allocation 的问题。
  • [Atom][editor] 修正了 CriAtomSource 组件的 Inspector 中的一些问题。
    • 修正了Unity编辑器的PlayMode中打开 CriAtomSource 的 Inspector 时,正在播放的场景中的声音会停止的问题。
    • 修正了在 CriAtomSource 的 Inspector 中进行预览播放时,当前的DSP总线设置不会被应用的问题。
  • [Atom][editor] 修正了CRI Profiler的一些问题:
    • 修正了当有多个声源时,信息显示会发生延迟,或发生错误并停止显示的问题。
    • 修正了当时间线显示内容较复杂时,发生IndexOutOfRange例外,并且显示会暂时消失的问题。
  • [Atom][ios] 修正了退出Atom库时,本插件以外的音频输出被禁用的问题。
  • [all_module][editor] 修正了CriConsoleLog不显示一些与插件有关的日志的问题。
  • [all_module][ios] 修复了导出的 Xcode 项目移动到其他环境时某些文件未被正确引用的问题。
  • [Atom][all_platform] 修正了与Atom Timeline扩展绑定的AtomSource.player的SetStartTime处理被插件端处理覆盖的问题。
  • [Atom][all_platform] 修复了即使不使用以下回调事件也可能出现相关警告的问题:
  • [Mana][ios] 修正了在播放Sofdec.Prime或VP9编码的视频时导致闪烁的问题。在此修正后,播放开始后视频被绘制出来之前会有一帧的延迟。
  • [Fs][all_platform] 修复了在 CriWare.CriFsUtility.WebInstall 中抛出例外时会导致无效实例残留的问题。
  • [Mana][android] 修复了当启用 OpenGLES3 或 OpenGLES2 作为图形API时,H.264视频在如下环境下无法正常绘制的问题:
    • - CriManaPlugin.IsCodecSupported() 返回false的特定设备
    • - 启用了Unity Universal Render Pipeline的环境
    • - Windows Subsystem for Android
    • 注意在上述图形API下的播放负载也发生了变化。要返回到以前的举动,请定义以下预处理器指令:
    • - CRI_DISABLE_MANA_OUTPUT_BUFFER_FOR_OPENGLES3
  • [Atom][ios] 修正了 CriWare.CriAtomOutputDeviceObserver.IsDeviceConnected 无法正确更新的问题。
  • [Mana][editor] 修正了macOS编辑器中指定特定平台为Target Platform时,视频播放无法正常执行的问题。
  • [Mana][ios] 修复了在 PlayerSettings 中关闭“Render Extra Frame on Pause”的情况下执行如下操作时视频播放会停止的问题。
    • 完全拉下通知中心
    • 使用iPad的台前调度功能,选择“添加另一个窗口”开启别的应用