【问题标题】:Why my Unity game in Android freezes when calling LoadScene?为什么我在 Android 中的 Unity 游戏在调用 LoadScene 时会死机?
【发布时间】:2020-07-06 20:58:11
【问题描述】:
当我尝试加载下一个场景时游戏会永久冻结,但当我使用“Additive”模式加载它时它加载正常(使用 SceneManager.LoadScene("NextScene", LoadSceneMode.Additive)) .
在编辑器中,即使在“单一”模式下一切正常,问题只出现在 Android 上。
我不想使用“加法”模式,因为它会将新场景的内容加载到旧场景之上。
我试试:
- 使用“adb logcat”查看是否发生异常但没有异常。
- 将空场景加载为新场景,但问题仍然出现。
- 使用 SceneManager.LoadSceneAsync("NextScene") 加载,但问题仍然出现。
- 以“加法”模式加载,在加载下一个场景后,我尝试使用 SceneManager.UnloadScene("OldScene") 卸载旧场景,但它再次冻结。
所以当 Unity 尝试卸载旧场景时出现问题。
(我使用 Unity 2018.4.10f1 LTS)。
提前感谢您的帮助。
【问题讨论】:
标签:
android
unity3d
freeze
【解决方案1】:
尝试从最后一个场景中删除对象
在for循环中查看错误响应什么对象
【解决方案2】:
我尝试使用 PC 构建游戏,但遇到了同样的问题。
我在“C:/Users/.../AppData/Local/Temp/.../My game name/Crashes”中看到 output_log.txt 文件中的内容以及崩溃后的第一条可读消息如下:
"错误:SymGetSymFromAddr64,GetLastError:'尝试访问无效地址。' (地址:00007FFEF20E5212)"
我的游戏没有任何其他错误或异常,
所以我尝试使用更新版本的 Unity (2018.4.10f1 --> 2018.4.20f1) 来测试游戏,
Abracadabra 新版本一切正常!!
并且问题不再出现!
我认为这是 Unity 2018.4.10f1 中的内存管理问题,但我不知道为什么。