如何修复仅在“应用程序”文件夹中运行时挂起/冻结的 Unity MacOS 应用程序

问题描述 投票:0回答:0

我已经构建了一个 Unity MacOS 应用程序,它在调试器中运行良好,从构建目录运行时也很好,但是当 *.app 文件被复制到“Applications”文件夹时,它在执行 an 时挂起 30 秒异步动作。有谁知道为什么/如何解决它?

我的代码基本上是这样的:

private void Start()
{
  StartCoroutine(StartLate());
}

IEnumerator StartLate()
{
  yield return null;

  using (UnityWebRequest www = UnityWebRequest.Get("<my url>"))
  {
    UnityWebRequestAsyncOperation async = www.SendWebRequest();

    int i=0;
    while (!async.isDone)
    {
      Debug.Log(i++);
      yield return null;
    }
    Debug.Log("Complete");

    // Actually act on the result...

  }
}

在 Unity 调试器中运行时,或在构建目录中进行独立构建时,输出如下所示:

1 2 3 4 5 6 7 8 9..... 100 101 Complete

如果我将应用程序复制到“应用程序”目录,然后运行它,那么输出是:

1 2 3 4 5 6 7 8 9..... 100 101
<30 second hang>
Complete

请注意,这是一个正确的“挂起”——整个应用程序冻结,鼠标光标变为 MacOS 挂起动画。当只调用

yield return www.SendWebRequest()
而不是使用异步模式时,我也得到了相同的行为(我添加它只是为了尝试和调试问题的确切位置!)。

有谁知道是什么原因造成的和/或如何解决和/或解决它?

macos unity-game-engine httpwebrequest freeze coroutine
© www.soinside.com 2019 - 2024. All rights reserved.