使用 Unity Main Thread Dispatcher 腳本
VIVEPORT SDK API 使用回調函數的機制來回傳執行結果。各種回調函數會從主執行緒以外的執行緒調用。但 Unity 要求來自主執行緒的函數回調或操作 (例如 UI 操作)。
要解決此問題,請在 VR 內容中使用 Unity Main Thread Dispatcher 腳本。將回調函數指派到主執行緒。操作方式如下:
-
在場景中建立一個空的 GameObject,並將其命名為
MainThreadDispatcher
。 -
您可以在 VIVEPORT SDK 的
Assets/Viveport/Scripts/
中找到腳本
MainThreadDispatcher.cs
。將此腳本附加到您建立的 GameObject。 -
在腳本的開頭加上以下內容:
using Viveport
-
使用以下寫法從主執行緒執行操作:
MainThreadDispatcher.Instance().Enqueue(YourAction)