К сожалению, все сводится к тому, что вы ничего не можете с этим поделать.
В соответствии с DLL-обработкой .net DLL не могут быть выгружены по отдельности без закрытия домена приложения.И пока Unity отслеживает изменения, внесенные в DLL, старая версия сохраняется в памяти и используется во время выполнения в редакторе.«Забавно», что вы можете сделать, чтобы увидеть это в действии, удалив родной плагин из редактора.Подтвердите, что вы хотите удалить файл.Файл исчезнет из инспектора.Однако, если вы щелкнете правой кнопкой мыши по папке и обновите (ctrl + r), вы увидите, что файл восстанавливается (это также происходит при нажатии «re-import all», поскольку домен приложения не закрыт, несмотря на перезапуск единства).
Однако при создании приложения оно будет использовать локально сохраненный файл, а не файл, сохраненный в памяти.Следовательно, плагин обновляется при сборке.
Невозможно выгрузить отдельную сборку, не выгружая все домены приложений, которые ее содержат.Даже если сборка выходит из области видимости, фактический файл сборки будет оставаться загруженным до тех пор, пока не будут выгружены все домены приложения, которые его содержат.
source
Это имеетВ течение некоторого времени это была проблема, и люди предпринимали попытки обойти и / или исправить ошибки, но, насколько мне известно, «обходные пути», которые существуют сейчас, предназначены только для окон.вот несколько ссылок на обсуждения по этому поводу.
Полагаю, что можно сделать, это написать оболочку, которая автоматически перезапускает Unity, когда dll отредактирована ... Хотя это не решит проблему, по крайней мере, сделает ее несколькоменьше хлопот.