Unity 5.6.0f3从Android切换到WebGL时编译错误无详情,如何获取日志?
解决Unity切换到WebGL时编译报错但无详情的问题
我之前也踩过这个坑!当Unity 5.6.0f3从Android切换到WebGL时,只弹出“error building player because scripts have compile errors in the editor”却看不到具体错误,确实很头疼。下面几个方法帮你挖出错误详情:
1. 直接查看Unity编辑器日志文件
Unity所有的编译错误都会记录在编辑器日志里,不管界面有没有显示。根据你的操作系统,找到对应的日志文件路径:
- Windows:
C:\Users\<你的用户名>\AppData\Local\Unity\Editor\Editor.log - macOS:
~/Library/Logs/Unity/Editor.log - Linux:
~/.config/unity3d/Editor.log
用记事本、TextEdit这类文本编辑器打开日志,搜索关键词error或者compile error,就能找到具体的报错脚本名称、行号和错误描述了。
2. 配置Console面板显示详细信息
有时候是Console面板的显示设置被隐藏了,按以下步骤操作:
- 打开Unity编辑器顶部菜单栏的
Window > General > Console,调出控制台面板 - 点击Console窗口右上角的齿轮图标(Settings),勾选
Show Stacktrace和Show Error Info选项 - 这时候重新尝试切换平台,或者触发一次脚本重新编译,Console里应该会显示完整的错误详情。如果还是没显示,试试先切回Android平台,有时候切回原平台后隐藏的错误会显现出来,修复后再切WebGL。
3. 强制触发脚本重新编译
有时候Unity的编译缓存会导致错误不显示,强制重新编译能让错误暴露出来:
- 在Project窗口右键任意脚本,选择
Reimport - 或者在Project窗口新建一个空的C#脚本,然后立刻删除,触发Unity重新编译所有脚本
- 另一个小技巧:随便找个脚本重命名(比如加个后缀),然后再改回来,也能强制触发重新编译。
4. 排查WebGL平台的API兼容性问题
WebGL有不少Unity API是不支持的,比如同步IO操作、多线程相关的Thread类,还有一些第三方插件可能没做WebGL适配。如果你的项目在Android上正常,但切WebGL报错,大概率是用了WebGL不兼容的代码:
- 检查项目脚本里有没有使用
System.Threading、System.IO.File这类WebGL受限的API - 用Unity的条件编译指令区分平台,比如:
#if !UNITY_WEBGL // 这里放Android支持但WebGL不支持的代码 #endif
内容的提问来源于stack exchange,提问作者UnityTaru
相关产品推荐
相关产品推荐

