文件名错误:./Runtime/Export/Debug/Debug.bindings.h 行:35

Error in Filename: ./Runtime/Export/Debug/Debug.bindings.h Line: 35

我正在尝试将统一游戏部署到 webgl。在 windows 上一切正常。我在多人游戏中使用 Unity 中的 socketio,我不确定这是否相关。另外,我使用的是 unity 2020,并且我已经禁用了压缩。我在 chrome:

的控制台中收到此错误

{"tid":1,"div":"EventDescriptor","msg":"呼叫","ex": [{"msg": "System.Reflection.Emit.DynamicMethod:: .ctor", "stack": ""}],"stack":"","ctxs":[],"t":637425122207370000,"ll":"Exception","bh":1} (文件名:./Runtime/Export/Debug/Debug.bindings.h 行:35)

我不知道那个错误是什么意思。有人可以帮忙吗?

此错误是因为 Web 编译器无法识别方法。

你的情况是 System.Reflection.Emit.DynamicMethod

解释:

Unity 上的 WebGL 是 AOT(提前)编译的,使用反射的方法可能不起作用。而且您似乎尝试使用命名空间 Emit,这在包括 Web 在内的 AOT 平台上是完全禁止的。

您需要删除所有反射(尤其是 Emit)或将其替换为能够提前编译的东西!

如果您没有使用 Emit 或者您不知道它可能来自哪里,您应该给我们一个完整的错误信息。 PlayerSettings -> EnableExceptions -> Full With Stacktrace