使用 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)