Skip to main content

按平台虚拟形象覆盖

按平台覆盖允许你为多个平台配置不同的跨平台虚拟形象版本。当你将虚拟形象构建并发布到多个平台时,SDK 会自动在相同的虚拟形象 ID 下为每个选定平台上传不同版本的虚拟形象。

按平台覆盖使得为 Android 上传优化版本、为 PC 上传完整功能版本的虚拟形象变得非常容易。

note

你也可以通过进行多次上传而不更改虚拟形象 ID 的方式,手动为不同平台上传不同版本的虚拟形象。但是,这比跨平台覆盖更加繁琐和耗时。

设置

要设置按平台覆盖,请按照以下步骤操作:

  1. 在同一个场景中设置你想要使用的所有虚拟形象版本。
  2. 切换到 SDK 的 Builder 选项卡。
  3. 选择你要用作覆盖基础的虚拟形象。这将是在 SDK 构建面板中选择以点击"Multi-Platform Build & Publish"的虚拟形象。
  4. 点击"Selected Avatar"下拉菜单旁边的 ⋮ 按钮。

选项菜单

  1. 在出现的弹出窗口中,点击"Add per-platform override"。
  2. 选择覆盖的平台,然后选择用于该平台的虚拟形象。

按平台覆盖

  • 为你想要设置覆盖的所有平台重复此过程。
  • 更改会自动保存,因此你可以继续进行多平台构建和发布。

设置按平台覆盖后,当你进行多平台构建时,SDK 将为每个平台构建并上传虚拟形象的"覆盖"版本。

覆盖设置完成后,你还会看到一个新的组件被添加到虚拟形象对象的根部,名为"VRC Per Platform Overrides"。此组件与构建面板中的按平台覆盖功能相同,但我们建议你使用构建面板来设置覆盖。此组件主要用于查看现有覆盖以及在社区制作的工具中使用。

编辑器工具​

如果你想创建一个可以查询虚拟形象按平台覆盖的编辑器工具,请使用以下方法:

using VRC.SDK3A.Editor;

//...

PerPlatformOverrides.GetPlatformOverrides(myAvatarGameObject);

它将返回一个 List<PerPlatformOverrides.Option>,如果没有设置覆盖,则返回 null。

你也可以使用以下方法自己设置覆盖:

using VRC.SDK3A.Editor;

//...

PerPlatformOverrides.SetPlatformOverrides(myAvatarGameObject, new List<PerPlatformOverrides.Option> {
new PerPlatformOverrides.Option {
platform = BuildTarget.Android,
avatar = myAndroidAvatarDescriptor
}
});

如果虚拟形象上尚不存在覆盖组件,这将自动添加它。

按平台覆盖目前仅在"主"虚拟形象对象上设置。因此,你通常需要扫描每个带有 VRC_AvatarDescriptor 的对象,以检查是否存在覆盖,从而获得完整的概览。