构建管线回调和接口
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 来中止构建。