释义:
这两个报错信息同时出现:
UNetWeaver error: Exception :System.BadImageFormatException: Format of the executable (.exe) or library (.dll) is invalid.
Failure generating network code.
有时候附带这个:
MissingReferenceException: The object of type 'Object' has been destroyed but you are still trying to access it.
出现这个错误的地方在NetworkBehaviour派生类的成员变量定义中,在它的静态函数中定义也会出错。:
using VoiceChat.Base;
...
VoiceChatPacket playerPacket ;
而这个VoiceChat.Base是定义在.dll类库中,用反编译软件打开可以看到源码是这样的:
[StructLayout(LayoutKind.Sequential)] public struct VoiceChatPacket
网上有人遇到这个问题是因为结构体加了[Seriazable](链接传送门),Unet的系列化系统有所不同,不应该使用list。但我这里没有用序列化,也没有用list,源码中结构体只是加了控制结构体在内存的物理布局的StructLayout,所以这不是答案。