Skip to main content

エディターとの通信

ランタイムとエディター間の通信はすべて、ContextシングルトンオブジェクトからアクセスできるServiceクラスを介して行います。たとえば、エディターにポップアップメッセージを表示するには、次のコードを使用します。

Context.Service.PromptMessage("Hey!", "I'm a message!");

よく使用されるメソッドを以下に示します。

  • void BroadcastOpenedScene(): シーン全体をエディターに送信します。プログラムからシーンにアセットやブループリントを追加・削除した場合にだけ必要です。
  • void Toast(ToastSeverity severity, string header, string summary, string message = null, TimeSpan duration = default): エディターにトーストメッセージを表示します。messageがnullでない場合、ユーザーはトーストをクリックしてメッセージ全体を確認できます。
  • void PromptMessage(string header, string message, bool markdown = false): エディターにポップアップメッセージを表示します。markdownがtrueの場合、メッセージはMarkdownテキストとしてレンダリングされます。
  • UniTask<bool> PromptConfirmation(string header, string message): エディターに確認ダイアログを表示します。ユーザーが"OK"をクリックした場合はtrue、"Cancel"をクリックした場合はfalseを返します。
  • UniTask<T> PromptStructuredDataInput<T>(string header, T structuredData = null): エディターに構造化データ入力ダイアログを表示します。structuredDataオブジェクトを渡すと、ダイアログにはそのデータがあらかじめ入力されます。ユーザーが"OK"をクリックした後に構造化データオブジェクトを返し、"Cancel"をクリックした場合はnullを返します。
  • UniTask<T> PromptStructuredDataInput<T>(string header, Action<T> structuredDataInitializer): 上記と同様ですが、structuredDataInitializer関数を呼び出して構造化データオブジェクトを初期化します。
  • void ShowProgress(string message, float progress, TimeSpan timeout = default): エディターに進行状況バーを表示します。progressの値は0から1の範囲で指定します。timeoutを指定した場合、進行状況バーは指定した時間の経過後に自動的に非表示になります。
  • void HideProgress(): 進行状況バーを非表示にします。
  • void NavigateToGraph(Guid graphId, Guid nodeId = default): エディターで指定したグラフに移動します。nodeIdを指定した場合、エディターはグラフ内の指定したノードを選択します。
  • void NavigateToPlugin(string pluginId, string port = default): エディターで指定したプラグインに移動します。portを指定した場合、エディターはプラグインの指定したポートに移動します。
ヒント

エディターが閉じている場合でも、ランタイムではContext.Serviceを常に利用できると考えて問題ありません。

最終更新日 2026.10.06