Не удается загрузить 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#.

Другие вопросы по тегам