Unity:InvalidProgramException:无效的IL代码XXX():IL_0011

时间:2018-05-26 00:16:02

标签: c# unity3d networking multiplayer unity3d-unet

所以这个项目是一个在线MMO。它使用uMMORPG2D资产(后者又使用UNET)。

有问题的代码在上周一直没有发生任何事故,并且在任何时候都没有被修改过。然而现在它突然抛出这个错误。我很茫然。

更复杂的是,在我自己的项目构建/版本上,它运行良好。我没有得到这个错误。但是,运行完全相同版本/版本的朋友确实会收到此错误。

声称被破坏的线路非常简单(不能简单)。它所做的只是设置一个等于另一个的整数....唯一的潜在问题是设置的整数是[SyncVar](但同样,这是上周的情况+)

以下是相关代码;

[SyncVar]
internal int mainID = 0;

public void SetIndices(int bodyIndex, [...])
{
    mainID = bodyIndex;
    [...]
}

调用SetIndices
int bodyID = Convert.ToInt32((long)mainrow[5]);
[...]
charCreator.SetIndices(bodyID, [...]);

没有强制转换异常或任何类型(据我所知),所以我认为没有理由会导致错误?

实际错误是

  

InvalidProgramException:中的IL代码无效   CharacterCreator:set_NetworkmainID(int):IL_0011:调用
  0x2b00000a

1 个答案:

答案 0 :(得分:0)

  

虽然我不确定问题的实际原因,   解决方案是重新安装Unity。

团队成员建议我为Unity实施HLAPI Pro插件(包括替换安装目录中的Unity.dll文件)。有人告诉我,不正确的安装会导致许多错误(没有人有错误),所以假设它工作正常。

经过重大测试后,工作时间和错误开始显示之间的唯一区别是HLAPI Pro安装。所以我卸载它并且工作正常。

不知道它为什么会损坏,也许我安装错误,但重新安装Unity解决了这个问题。