跳转到内容

生命周期(Unity)

相比 Web SDK 生命周期 —— 那里 JS 游戏必须显式注册五个回调 —— Unity 完全不需要做任何事。当一个插屏或激励广告打开时,封装包会:

  • 暂停 Unity 播放器(于是你的 Update 循环冻结)。
  • 挂起浏览器音频上下文(于是你的音乐不会盖在广告上响)。
  • 广告关闭后两者都恢复。

只要装了封装包并跑过 FRVRSDK.Init,这些行为就免费送你。

  • 音频导入。 iOS 的静音合规要求每个 AudioClip 用特定设置导入 —— 见 Unity 快速上手 § 3. 音频。这是唯一一个跟生命周期相关、漏了就会出问题的事。
  • Run in background 必须关闭。 Project Settings → Player → Resolution and Presentation。如果开着,广告盖上来时 Unity 还会继续跑 —— 双倍占用音频通道和 CPU。
  • 加载进度。 封装包内部通过引导器驱动渠道的启动画面。如果你想展示自己的进度,顺带一并发出 —— 范式参考 Unity 快速上手。

如果你确实需要在游戏代码里响应 pause/resume

Section titled “如果你确实需要在游戏代码里响应 pause/resume”

用 Unity 内建的钩子 —— 它们会触发,因为封装包用的也是同一组信号:

void OnApplicationPause(bool paused)
{
    if (paused) StopAmbientLoops();
    else        ResumeAmbientLoops();
}

void OnApplicationFocus(bool hasFocus)
{
    // hasFocus == false 表示标签页/应用切到后台或广告打开了
}

不要尝试把它们代理到 FRVRSDK.Lifecycle.* —— Unity 封装里根本没这个 API,而且会和封装包正在做的事重复。