按平台虚拟形象覆盖
按平台覆盖允许你为多个平台配置不同的跨平台虚拟形象版本。当你将虚拟形象构建并发布到多个平台时,SDK 会自动在相同的虚拟形象 ID 下为每个选定平台上传不同版本的虚拟形象。
按平台覆盖使得为 Android 上传优化版本、为 PC 上传完整功能版本的虚拟形象变得非常容易。
note
你也可以通过进行多次上传而不更改虚拟形象 ID 的方式,手动为不同平台上传不同版本的虚拟形象。但是,这比跨平台覆盖更加繁琐和耗时。
设置
要设置按平台覆盖,请按照以下步骤操作:
- 在同一个场景中设置你想要使用的所有虚拟形象版本。
- 切换到 SDK 的 Builder 选项卡。
- 选择你要用作覆盖基础的虚拟形象。这将是在 SDK 构建面板中选择以点击"Multi-Platform Build & Publish"的虚拟形象。
- 点击"Selected Avatar"下拉菜单旁边的
⋮按钮。
- 在出现的弹出窗口中,点击"Add per-platform override"。
- 选择覆盖的平台,然后选择用于该平台的虚拟形象。

- 为你想要设置覆盖的所有平台重复此过程。
- 更改会自动保存,因此你可以继续进行多平台构建和发布。
设置按平台覆盖后,当你进行多平台构建时,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 的对象,以检查是否存在覆盖,从而获得完整的概览。