我正在使用用C#编写的Unity创建一个WebGL应用程序。
我有一个根据身份验证令牌登录用户的功能(如果用户之前登录并有 cookie,则允许用户跳过登录屏幕)。
当我点击播放按钮时,该应用程序在 Unity 环境中完美运行。但是,当我构建应用程序并在浏览器中本地运行它时,我的控制台日志中出现"System.SystemException:线程创建失败"错误。此错误似乎在用户登录后立即发生。我的登录功能是:
public void loginWithAccessIDToken(string accessIDToken, Action<KiiUser> success)
{
//Use the access token to sign-in again
try
{
Debug.Log("About to log in...");
KiiUser.LoginWithToken(accessIDToken, (KiiUser user, Exception e) =>
{
UnityEngine.Debug.Log("Got Something!");
if (e != null)
{
User = null;
success(User);
UnityEngine.Debug.Log("Exception caught...");
}
else
{
User = user;
success(User);
UnityEngine.Debug.Log("Login successful...");
}
});
}
catch (Exception e)
{
Debug.Log("Exception caught..." + e.Message);
success(User);
}
}
我还在下面附上了我在Firefox中收到的错误的屏幕截图。在我看来,Kii 正在做某种线程。我在网上读到WebGL不支持线程。但是,我对 Kii 想要做什么并不了解!
是否有人在他们的应用程序中实现此逻辑的经验?如果我在 Unity 构建设置中启用了异常,我能够保持我的应用程序运行。虽然,这肯定不是永久的解决方案!
如果有人有任何建议或想了解有关我的构建设置的更多信息,请询问。
火狐控制台日志
System.Threading 命名空间目前在 WebGL 中不可用。不幸的是,听起来这个问题出在第三方库中。
为了支持 WebGL,你可以使用协程而不是线程,但听起来你必须联系 Kii 的开发人员。