在 Unity 游戏中以编程方式调用共享魅力
Invoking share charm programatically in a Unity game
我正在使用 Unity 4.6 为 windows store/phone 开发游戏,并希望使用分享魅力在 Facebook 和其他平台上分享分数。我的场景中有一个按钮,但我无法以编程方式通过它调用共享魅力。我尝试使用
DataTransferManager.ShowShareUI();
但它给了我以下错误:
activating a single-threaded class from mta is not supported
谁能告诉我怎样才能实现我想要的功能?
对于 Windows 商店(包括 Windows Phone 8.1 运行时)应用程序,您可以使用 UnityEngine.WSA.Application's InvokeOnUIThread or TryInvokeOnUIThread 方法在 UI 上调用委托您可以从中调用 Windows 运行时 UI 方法的线程,例如 ShowShareUI:
public void OnClick()
{
UnityEngine.WSA.Application.InvokeOnUIThread(() =>
{
Debug.Log("On UI Thread");
#if NETFX_CORE
Windows.ApplicationModel.DataTransfer.DataTransferManager.ShowShareUI();
#endif
}, false);
}
如果您专门针对 Windows Phone 8,您可能需要一个插件来编组到 UI 线程,因为 UnityEngine.WSA 不可用。
我正在使用 Unity 4.6 为 windows store/phone 开发游戏,并希望使用分享魅力在 Facebook 和其他平台上分享分数。我的场景中有一个按钮,但我无法以编程方式通过它调用共享魅力。我尝试使用
DataTransferManager.ShowShareUI();
但它给了我以下错误:
activating a single-threaded class from mta is not supported
谁能告诉我怎样才能实现我想要的功能?
对于 Windows 商店(包括 Windows Phone 8.1 运行时)应用程序,您可以使用 UnityEngine.WSA.Application's InvokeOnUIThread or TryInvokeOnUIThread 方法在 UI 上调用委托您可以从中调用 Windows 运行时 UI 方法的线程,例如 ShowShareUI:
public void OnClick()
{
UnityEngine.WSA.Application.InvokeOnUIThread(() =>
{
Debug.Log("On UI Thread");
#if NETFX_CORE
Windows.ApplicationModel.DataTransfer.DataTransferManager.ShowShareUI();
#endif
}, false);
}
如果您专门针对 Windows Phone 8,您可能需要一个插件来编组到 UI 线程,因为 UnityEngine.WSA 不可用。