概要
このセクションでは、WarudoのスクリプティングAPIを詳しく解説します。Warudoでスクリプトを書き始めるために、すべての詳細を把握しておく必要はありません。しかし、少なくともこのセクションに目を通し、仕組みの全体像をつかむことをおすすめします!
Warudoは、エディターとランタイムという2つのアプリケーションで構成されています(本ハンドブックのプログラマー向けではないセクションでは、ランタイムをメインウィンドウと呼んでいました)。エディターではシーンを作成・編集します。たとえば、アセットやプラグインの設定を更新したり、ブループリントにノードを追加・接続したりします。ランタイムはレンダリング/スクリプティングエンジンとして機能し、作成したシーンを実行します。
エディター(右)とランタイム(左)。
エディターとランタイムはWebSocket接続を介して通信します。エディターで変更を行うと、その変更がランタイムに送信され、ランタイムがそれに応じてシーンを更新します。このアーキテクチャにより、加えた変更をリアルタイムで確認できます。反対に、ランタイムで変更を行った場合(例: ノードのデータ入力をプログラムから変更する場合)、その変更をエディターへ送り返す必要があります(データ入力へのアクセスを参照)。
WarudoランタイムはUnity 2021.3を使用して構築されています。ただし、コアフレームワークはできる限りエンジンに依存しない設計になっています。そのため、ノード、アセット、プラグインは、シンプルでクリーンなAPI群を通じて、互いに、またユーザーとやり取りできます。また、ホットリロードなどの機能も実現されています。
一般的なUnityプロジェクトのようにMonoBehaviourから派生したC#クラスを記述する代わりに、NodeやAssetなどのWarudoの基底クラスから派生したクラスを記述します。これらのクラスはWarudoのランタイムによってインスタンス化・管理されます。そして、これらのクラス内からUnity APIを呼び出し、GameObjectの作成やコンポーネントの追加など、Unityシーンとやり取りできます。