エディタの拡張

Creator Kitでのワールドの編集やアップロードはUnity Editorによって行われます。 エディタ拡張をC#で書くことで、このプロセスを拡張することができます。

コールバックの登録

アップロードの前後にコールバックを登録できます。

Editor 向けに記述された Unity C# コードから ClusterVR.CreatorKit.Editor.EditorEvents.asmdef を参照することで、WorldUploadEvents クラスにアクセスしてワールドのアップロードイベントを処理します。

WorldUploadEvents クラスでは以下の関数が利用できます。

関数機能
RegisterOnWorldUploadStartワールドのアップロード前に呼ばれるコールバック関数を登録します。コールバック関数では、アップロードを続行してよい場合に true を返し、アップロードを中止すべき場合は false を返してください。
RegisterOnWorldUploadEndワールドのアップロードが成功、または失敗した場合に呼ばれるコールバック関数を登録します。

以下のサンプルコードでは、ワールドのアップロード前後にログ出力を行うコールバックを登録します。

using ClusterVR.CreatorKit.Editor.EditorEvents;
using UnityEditor;
using UnityEngine;

public static class MyWorldUploadEventHandler
{
    [InitializeOnLoadMethod]
    public static void Initialize()
    {
        WorldUploadEvents.RegisterOnWorldUploadStart(OnWorldUploadStarted);
        WorldUploadEvents.RegisterOnWorldUploadEnd(OnWorldUploadEnded);
    }

    static bool OnWorldUploadStarted(WorldUploadStartEventData data)
    {
        Debug.Log($"World upload started, root object count = {data.Scene.rootCount}");
        return true;
    }
  
    static void OnWorldUploadEnded(WorldUploadEndEventData data)
    {
        Debug.Log($"World upload ended, success={data.Success}");
    }
}