モジュールのロード
基本
Module.Create() を使用します。
ReadOnlySpan<byte> または ReadOnlySequence<byte> からのロードが可能です。
using WaaS.Runtime;
Span<byte> bytes = System.IO.File.LoadAllBytes("foo.wasm");
var module = Module.Create(bytes);
ストリーミング
現時点では未対応です。
アセットとしてのロード Unity
拡張子 *.wasm をもつファイルを Unity プロジェクトにインポートすると、自動的に WaaS.Unity.ModuleAsset としてロードされます。
モジュールは [SerializeField] としてアサインでき、ModuleAsset.LoadModule() または ModuleAsset.LoadModuleAsync() でロードできます。
using UnityEngine;
using WaaS.Runtime;
using WaaS.Unity;
[SerializeField] private ModuleAsset moduleAsset;
// 同期
var module = moduleAsset.LoadModule();
// 非同期
var module = await ModuleAsset.LoadModuleAsync();
ModuleAsset の設定で Deserialize On Loadを有効化すると、アセットのロード時に同期的にモジュールをプリロー ドします。
これによって、ModuleAsset.LoadModule() の待ち時間を減らすことができます。