v0.87
RuntimeImport 非同期ロード
awaitCaller 引き数
public virtual async Task<RuntimeGltfInstance> LoadAsync(IAwaitCaller awaitCaller = null, ...)
awaitCaller によりロード時の挙動をカスタマイズできます。
:language: csharp
:linenos:
- NextFrame: 処理を中断して次のフレームで再開します。ロード処理が長い場合に長時間アプリケーション が固まることを防ぎます
- Run: UnityEngine.Object にアクセスしない処理を別スレッドで実行します。タスクが終了したら await で Unity Script スレッドで続きを実行します。
ImmediateCaller
デフォルトでは、ImmediateCaller
が使われます。
ImmediateCaller
タスクを即時に実行するので、同期実行となります。
- Play(Editor Play, build), Editor(not play), UnitTest でデッドロックしないための実装です。
:language: csharp
:linenos:
RuntimeOnlyAwaitCaller
- Play(Editor Play, build) 時に非同期実行する実装です
VRM10_Samples/VRM10Viewer
に使用例があります。
:language: csharp
:linenos: