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