Skip to main content

构建管线回调和接口

VRChat SDK 包含多个可以通过编辑器脚本使用的接口,用于增强世界和虚拟形象的构建过程。

场景组件(Scene Components)​

下面列出的接口可以与 MonoBehaviour 结合使用,直接放置在场景对象上。这在需要持有特定场景引用以进行修改的情况下非常有用。

IEditorOnly​

VRC.SDKBase.IEditorOnly

该接口没有需要实现的成员。

你可以使用 IEditorOnly 将脚本标记为 SDK 验证中的编辑器专用脚本。这将使 SDK 在扫描你的世界或虚拟形象中的不兼容脚本时忽略该脚本。

IPreprocessCallbackBehaviour​

VRC.SDKBase.IPreprocessCallbackBehaviour

需要实现的成员:

public void OnPreprocess()
{
}

public int PreprocessOrder { get; }

该接口允许你在构建过程即将开始时执行自定义代码。这在需要在内容构建并上传到 VRChat 之前进行修改时非常有用。

🚧 请注意,这并不会自动绕过 SDK 验证。如果你的脚本直接存在于你要上传的虚拟形象上,你还应该使用 IEditorOnly。

项目级脚本(Project-Wide Scripts)​

这些接口适用于不依赖于特定场景对象、并对场景/虚拟形象进行批量修改的脚本。

IVRCSDKBuildRequestedCallback​

VRC.SDKBase.Editor.BuildPipeline.IVRCSDKBuildRequestedCallback

需要实现的成员:

public int callbackOrder => 0;

public bool OnBuildRequested(VRCSDKRequestedBuildType requestedBuildType)
{
return true;
}

其中 VRCSDKRequestedBuildType 是一个枚举,定义如下:

public enum VRCSDKRequestedBuildType
{
Avatar,
Scene,
}

该接口允许你在 VRChat SDK 开始构建内容之前执行一些逻辑。

OnBuildRequested 可以通过返回 false 来中止构建。