WaaS は Unity / .NET 向けのスクリプトエンジンです。
WaaS は WebAssembly as a Script の略で、WebAssembly をスクリプトの実行形式として採用しています。
これによって、次のようなメリットがあります。
言語非依存
Rust, Go, MoonBit, C/C++ など WebAssembly への出力に対応する様々な言語 が使えるため、用途に合った言語を選択できます。
Component Model サポート
Component Model をサポートしており、実用的なバインディングを行うことができます。
安全性
明示的に許可しない限り、WebAssembly はホスト環境のメモリや関数にアクセスすることはできません。
ソースの信頼できないスクリプトを安全に実行することもできます。
IL2CPP / NativeAOT 互換
WaaS は完全に C# で実装されたインタプリタであり、WebAssembly 自体の JIT や AOT コンパイルを必要としません。
iOS など JIT が禁止されたプラットフォームを含め、Unity や .NET がサポートするプラットフォームならどこでも実行できます。
ユースケース
ゲーム内の簡易スクリプトとして
ゲーム内のイベントや AI などを記述するためのスクリプトとして使用できます。
小さな単位でスクリプトを作成することで、高速なホットリロードも可能になります。
ユーザー作成コンテンツとして
ユーザー作成コンテンツに対して複雑な振る舞いを与えるためのスクリプトとして使用できます。
プラグインシステムとして
Unity や .NET で作成されたアプリケーションに対して、プラグインを追加するためのスクリプトとして使用できます。