メインコンテンツまでスキップ

コンポーネントのロード

基本

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() の待ち時間を減らすことができます。