所以这个项目是一个在线MMO。它使用uMMORPG2D资产(后者又使用UNET)。
有问题的代码在上周一直没有发生任何事故,并且在任何时候都没有被修改过。然而现在它突然抛出这个错误。我很茫然。
更复杂的是,在我自己的项目构建/版本上,它运行良好。我没有得到这个错误。但是,运行完全相同版本/版本的朋友确实会收到此错误。
声称被破坏的线路非常简单(不能简单)。它所做的只是设置一个等于另一个的整数....唯一的潜在问题是设置的整数是[SyncVar](但同样,这是上周的情况+)
以下是相关代码;
[SyncVar]
internal int mainID = 0;
public void SetIndices(int bodyIndex, [...])
{
mainID = bodyIndex;
[...]
}
从
调用SetIndicesint bodyID = Convert.ToInt32((long)mainrow[5]);
[...]
charCreator.SetIndices(bodyID, [...]);
没有强制转换异常或任何类型(据我所知),所以我认为没有理由会导致错误?
实际错误是
InvalidProgramException:中的IL代码无效 CharacterCreator:set_NetworkmainID(int):IL_0011:调用
0x2b00000a
答案 0 :(得分:0)
虽然我不确定问题的实际原因, 解决方案是重新安装Unity。
团队成员建议我为Unity实施HLAPI Pro插件(包括替换安装目录中的Unity.dll文件)。有人告诉我,不正确的安装会导致许多错误(没有人有错误),所以假设它工作正常。
经过重大测试后,工作时间和错误开始显示之间的唯一区别是HLAPI Pro安装。所以我卸载它并且工作正常。
不知道它为什么会损坏,也许我安装错误,但重新安装Unity解决了这个问题。