Не удается загрузить Mono.CSharp.dll ни в Unity3D, ни в проекте на C#
Я работаю над проектом онлайн-игры с использованием Unity3D для клиентов и серверов C#. Я пытаюсь использовать некоторый код eval для конкретной функции, но не могу заставить его работать.
Я пошел с Моно, потому что он казался одним из самых легких и одним из самых простых. Я установил Mono и получил "Mono.CSharp.dll" для.Net 4.6 из "Mono\lib\mono\4.6-api". (И Unity, и мои серверы настроены на использование этой версии.Net). Я поместил его в ресурсы Unity и сослался на него на своих серверах.
Но у меня есть ошибки как на Unity, так и на серверах. В Unity есть:
Loading script assembly "Assets/Scripts/Common/References/Mono.CSharp.dll" failed!
И на серверах есть исключение (моя IDE написана на французском языке, поэтому я не могу скопировать / вставить ее), но в основном это говорит мне, что он не может использовать ссылочные сборки для сборки, а только для отражения.
Чтобы описать функцию, которую я хочу создать (потому что, возможно, у вас будет лучшее решение), я хочу иметь возможность создавать заклинания из внешнего инструмента. Заклинания состоят из эффектов заклинаний. Допустим, есть эффект SpellEffect с именем DealDamage, конструктор принимает int (для суммы урона). Я хочу иметь возможность написать "DealDamage(50)" на моем внешнем инструменте, затем взять строку и построить из нее новый DealDamage (50).
Я знаю, что мог бы найти способ интерпретировать некоторый код самостоятельно, но это было бы гораздо больше работы для гораздо менее гибкой системы.
Было действительно трудно найти какую-либо помощь по этой проблеме в Интернете, поэтому в качестве последней надежды я обращаюсь к вам.
1 ответ
Я не совсем уверен, почему вы пытаетесь импортировать Mono в Unity. Он уже включен в установочный пакет. Если вы хотите создать модульный конструктор заклинаний, просто создайте обычное приложение с предпочитаемым языком в предпочитаемой вами IDE, сохраните все заклинания в виде файла JSON или XML, а затем импортируйте их в Unity. Со стороны Unity просто создайте класс для разбора файлов.
Для начала взгляните на библиотеку JSON.Net. С его помощью вы можете сериализовать ваши файлы в классы C#.