Unity: проблемы с использованием внешней библиотеки (SharpConfig) - PullRequest
0 голосов
/ 28 января 2019

Я пытаюсь использовать библиотеку SharpConfig в коде моего проекта 2D Unity.Я скачал .zip и извлек файл .dll, который затем поместил в папку «Ресурсы» моего проекта.В одном из моих сценариев я вызвал функции из этого файла, и он успешно скомпилирован.Когда я запустил игру, я получил ошибку

"Unloading broken assembly Assets/Scripts/SharpConfig.dll, this assembly can cause crashes in the runtime." 

После нажатия кнопки я получаю ошибку:

TypeLoadException: Could not find method due to a type load error
MenuController.LoadQuickplaySetup () (at Assets/Scripts/MenuController.cs:140)
MenuController.OnClick () (at Assets/Scripts/MenuController.cs:184)
MenuController.Update () (at Assets/Scripts/MenuController.cs:33)

Где метод LoadQuickplaySetup () вызывается из метода OnClick ()Я написал (который работает для каждой кнопки), который содержит функции, найденные в библиотеке SharpConfig, и MenuController - это сценарий, который я написал.

Эта проблема не была решена путем перезапуска Unity и повторной попытки.

Как бы я решил эту проблему?Я пропустил какие-либо шаги в процессе импорта библиотеки?

Версия Unity - 2018.3.0f2.

Ответы [ 2 ]

0 голосов
/ 03 февраля 2019

Я в конце концов решил проблему.Загружаемый файл SharpConfig содержит две папки внутри каталога SharpConfig / bin, DotNetCore и DotNetStandard, каждая из которых имеет собственный файл SharpConfig.dll.Сначала я использовал файл из DotNetCore, но после обновления моей версии Unity с 2018.3.0 до 2018.3.4 я заменил файл на файл из каталога DotNetStandard, и он заработал.

0 голосов
/ 28 января 2019

Когда возникает эта ошибка, это означает, что у dll, который вы импортировали, есть зависимости, и вы не добавили их в свой проект, чтобы узнать, чего вам не хватает, попробуйте создать консольное приложение и поместить

Assembly.LoadFrom(TheDLLpath);

В методе Main затем прочитайте исключение, которое должно произойти, чтобы узнать, какую зависимость вы пропускаете.

(вам также может понадобиться using System.Reflection; в вашем консольном приложении.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...