在 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 不可用。