Unity: InvalidProgramException: неверный код IL XXX (): IL_0011 - PullRequest
0 голосов
/ 26 мая 2018

Итак, проект представляет собой онлайн-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 голосов
/ 27 мая 2018

Хотя я не совсем уверен в истинной причине проблемы, решение было переустановить Unity.

Члены команды посоветовали мне внедрить плагин HLAPI Pro дляUnity (которая включала замену файлов Unity.dll в каталоге установки).Мне сказали, что неправильная установка приведет ко многим ошибкам (которых никто не имел), поэтому предположил, что она работала нормально.

После значительного тестирования единственная разница между тем, когда она работала, и когда ошибка начала показыватьбыла установка HLAPI Pro.Поэтому я удалил его, и он работал нормально.

Не знаю, почему он сломался, возможно, я установил его неправильно, но переустановка Unity решила проблему.

...