Build Pipeline Callbacks and Interfaces
VRChat SDKには、ワールドやアバターのビルドプロセスを強化するために、Editor Script経由で使用できる複数のインターフェースが含まれています。
シーンコンポーネント用
以下に概要を示すインターフェースは MonoBehaviours と組み合わせて使用できます。そのため、シーンオブジェクトに直接配置することが可能です。これは、特定のシーン参照を保持して変更を行う必要がある場合に役立ちます。
IEditorOnly
VRC.SDKBase.IEditorOnly
このインターフェースには実装すべきメンバーはありません。
IEditorOnly を使用すると、SDK検証のためにスクリプトをEditor専用としてマークできます。これにより、WorldやAvatarの非互換スクリプトをスキャンする際に、SDKがそのスクリプトを無視するようになります。
IPreprocessCallbackBehaviour
VRC.SDKBase.IPreprocessCallbackBehaviour
実装するメンバー
public void OnPreprocess()
{
}
public int PreprocessOrder { get; }
このインターフェースを使用すると、ビルドプロセスが開始される直前にカスタムコードを実行できます。これは、コンテンツがビルドされてVRChatにアップロードされる前に変更を加える必要がある場合に便利です。
🚧 SDK検証が自動的にバイパスされるわけではない点に注意してください。アップロードするアバター上に直接スクリプトが存在する場合は、
IEditorOnlyも併せて使用してください。
プロジェクト全体のスクリプト向け
これらのインターフェースは、特定のシーンオブジェクトに依存せず、コンテンツがVRChatにアップロードされる前にシーンやアバターに対して一括で変更を加えるような処理に適しています。
IVRCSDKBuildRequestedCallback
VRC.SDKBase.Editor.BuildPipeline.IVRCSDKBuildRequestedCallback
実装が必要なメンバー
public int callbackOrder => 0;
public bool OnBuildRequested(VRCSDKRequestedBuildType requestedBuildType)
{
return true;
}
ここで VRCSDKRequestedBuildType は以下のような形状のenumです。
public enum VRCSDKRequestedBuildType
{
Avatar,
Scene,
}
このインターフェースを使用すると、VRChat SDKがコンテンツのビルドを開始する前に独自のロジックを実行できます。
OnBuildRequested で false を返すことで、ビルドを中断することも可能です。
最終更新: