跳到主要内容

音频(Audio)

在 Unity Runtime 中,Rive 文件里的音频会通过 AudioProvider 路由到 Unity 音频系统。AudioProvider 本质上是对 AudioSource 的封装,用于把 Rive 音频混入 Unity 的音频管线。

注意(Note):WebGL 构建不支持 AudioProvider 路径。在 WebGL 上会自动回退为系统音频播放。

工作机制

每个播放音频的 RiveWidget 都需要一个 AudioProvider

  • 默认:所有未指定自定义 provider 的 widget 共享一个全局 provider(自动创建)
  • 可选:你可以给某些 widget 指定独立 provider(便于独立音量、Mixer Group 控制)

使用自定义 AudioProvider

  1. 在场景某个 GameObject 上添加 AudioProvider(会自动附带 AudioSource
  2. RiveWidget Inspector 的 Custom Audio Provider 里绑定它

或代码设置:

[SerializeField] private RiveWidget m_riveWidget;
[SerializeField] private AudioProvider m_audioProvider;

private void Start()
{
m_riveWidget.CustomAudioProvider = m_audioProvider;
}

CustomAudioProvider 置为 null 会回退到全局 provider。

平台行为

  • Editor / Standalone:通过 AudioSource 播放
  • iOS / Android:通过 AudioSource 播放,启动时自动 Play()
  • WebGL:使用系统音频,AudioProvider 无效并会告警

AudioProvider 字段

  • AudioSource:实际播放组件(必需)