如果您有本页未解答的问题,请使用支持联系页面上的联系信息 与我们联系。
本页可能会在收到常见问题后进行更新。
常规
本部分包含不属于任何特定类别的问题。
我可以在 YouTube 环境中测试游戏吗?
可以 - 使用开发者门户并按照 测试说明进行操作。
我的游戏未在 Android 或 SDK 测试套件中呈现,该怎么办?
如果游戏未在 Android 或 SDK 测试套件中呈现,通常是由于游戏在 WebView 中的加载方式所致。出于性能考虑,游戏最初加载到未向用户显示的 WebView 中,导致 WebView 视口大小为零。为解决此问题,建议采用以下解决方案:
(1) 验证游戏代码是否无论视口大小如何都会执行。
(2) 验证游戏代码是否可以处理视口大小调整,以及游戏代码在视口大小为零时是否不会等待或失败。
我们建议您监听窗口事件 resize,并且仅当 window.innerHeight 不为零时才设置游戏的高度。
技术要求
本部分包含与 YouTube 游戏大本营技术要求相关的问题。
我可以获得个人文件大小限制的豁免吗?
不可以。个人文件大小是硬性限制。
初始软件包大小是如何衡量的?
初始软件包大小是指在调用 gameReady 事件之前, Playable 下载的总字节数。
Playables 会尽可能使用 HTTP 压缩,这意味着 初始软件包大小可能小于 素材资源的总原始大小。在 SDK 测试套件中测试初始软件包大小时,如果您的本地主机未压缩 素材资源,则可能会导致大小大于 Playable 发布后的大小。如需查看为 Playable 提供的实际初始软件包大小,请使用 指向已上传 build 中的 index.html 文件的 SDK 测试套件,或修改本地服务器设置以 启用 gzip 压缩。
我已达到或超过个人文件或总软件包大小限制,该怎么办?
如需优化游戏并提升性能,请参阅以下文章:
如果我无法满足总软件包大小限制,该怎么办?
用户可能每次玩游戏时都必须从您的游戏中下载素材资源。 为避免加载时间过长和流量消耗过大,建议游戏的总软件包大小尽可能小。
我们鼓励游戏在每个游戏会话期间,随着用户的进度,利用延迟加载或其他类型的增量资源加载,或者按级别分解资源,以便在较长的会话过程中以少量方式下载资源。在这些情况下,较大的总软件包大小可能不会降低用户体验,实际上可能会通过以较低的单用户占用空间在游戏中启用更多内容来创造更好的用户体验。如果您 认为您的游戏以这种方式运行,并且有理由拥有较大的总软件包 大小,请使用我们的 支持联系页面 与我们联系,讨论您的使用情形。
我的内部分析是否可以排除在外部调用要求之外?
不可以。Playables 目前不得进行任何 外部调用 at this time。请告知您的合作伙伴经理您感兴趣的分析类型,以便优先考虑此领域的未来功能。
游戏从远程数据库提取数据和级别,这是否可以接受?
目前不可以,但我们正在针对部分游戏试行远程数据访问。目前,所有游戏数据都必须作为游戏软件包的一部分。如果您想更新或刷新游戏素材资源或内容,请使用支持联系页面上的联系信息提交刷新的游戏软件包,或者如果您想被纳入我们的试行计划,请与我们联系以进一步咨询。
我看到一条关于执行内嵌脚本时违反“内容安全政策”的错误消息
当您使用 JavaScript 创建 <script> 标记并将其添加到您的
网页时,就会发生这种情况。出于安全考虑,YouTube 使用内容安全政策 (CSP),该政策要求脚本具有称为“Nonce”的特殊安全代码。YouTube 会自动将此代码添加到 HTML 文件中的脚本,但您必须手动将其添加到使用代码创建的任何脚本。
使用 JavaScript 以编程方式生成脚本标记时,您需要从网页中找到 nonce 并将其应用于新的脚本元素。
示例:
const script = document.createElement('script');
script.src = '...';
// Find the nonce from the main page and apply it
script.nonce = document.querySelector('script[nonce]')?.nonce;
document.head.appendChild(script);
您可以使用 测试套件说明中指定的准则来测试离线配置。
SDK 集成
本部分包含与任何 Playables SDK APIs 相关的问题。
我因音频集成问题而未能通过认证,需要修复哪些问题?
最常见的音频问题涉及在开始播放之前需要用户互动的游戏。不过,YouTube 游戏大本营 可能会自动获得焦点,因此游戏必须处理这种情况。
如需查看音频设置示例,请查看示例。
Unity
本部分包含有关将现有 Unity 游戏与 YouTube 游戏大本营 SDK 集成的任何问题。如需查看有关如何使用 SDK 和 Unity 封装容器的示例,请参阅 YouTube 游戏大本营 Unity 封装容器 文档。
我可以使用 Unity 预压缩吗?
我们不建议预压缩素材资源。初始软件包大小要求使用压缩后的大小,上传的文件在注入后将应用压缩。如果仍需要预压缩文件,请参阅本部分的其余内容,或访问我们的 支持联系页面 与支持团队联系,讨论最适合您游戏的选项。
某些游戏需要对 Unity 的 .wasm 或 .data 文件使用预压缩。
仅在以下情况下使用预压缩,因为这可能会导致加载时间大大延长:
- 如果您需要使用 Unity 预压缩来满足个人 文件大小或总软件包大小要求,请参阅 “我已达到或超过个人文件或总软件包大小限制,该怎么办?”。
- 如果您需要使用 Unity 预压缩才能让游戏通过认证,则必须满足以下要求:
- 您必须使用 zip 预压缩。
- 您必须在加载器脚本中手动解压缩文件。我们建议使用 Compression Streams API。
这些额外要求源于服务架构的限制。 目前,不支持其他 HTTP 标头或 Brotli 压缩。
如何在游戏在后台运行时管理帧更新?
您可以使用 setTimeout 在游戏在后台运行时管理帧更新。
这有助于控制暂停音频等行为。您可以通过在播放器设置中启用“在后台运行”选项来验证后台帧管理。
Unity 游戏的内存限制
Unity 中的某些游戏会使用大量内存,这可能会导致超出 内存用量限制,从而超出 Playables 的内存用量限制。建议遵循 Unity WebGL 中内存的开发文档。