Итак, я хочу создать эту маленькую изолированную программную программу в Unity, которая позволит мне обучать студентов основам алгоритмики и кодирования.Разбор строки в коде Unity3D (C#)
Идея заключалась в том, чтобы ввести (очень простой) код в текстовое поле или что-то в этом роде и наблюдать за эффектами своего кода на объекты, присутствующие в сцене Unity. Я почти уверен, что это было сделано миллион раз, но я хотел бы попробовать свои силы в этом. Втирать, я не знаю, с чего начать ...
Я думаю, идея состоит в том, что строка будет скомпилирована в код &, исполняемый во время выполнения, нажатием кнопки.
Я прочитал о многих других вопросов на SO, и придумали очень разнообразных решений, таких как использование C# парсер, отражение, деревья выражений, CodeDom и т.д.
Из того, что я понял из всех этих (т. е. не так много), CodeDom казался более подходящим, но затем я прочитал, что он только работал внутри Visual Studio и генерировал ошибки в публичных сборках. Так что это означает, что это будет проблемой в Unity3D (так как он основан на Mono?)
Спасибо за вашу помощь,
Спасибо за ваш ответ! Это очень интересно, и я бы не подумал, что это возможно ... У меня все еще есть вопрос. Кажется, что это творит чудеса для имен методов, но как насчет предложений или циклов? Я не вижу каких-либо методов, заменяющих их в ближайшее время (и моя цель - научить алгоритмам, поэтому мне обязательно нужны эти ...) Если бы я не смог преобразовать, если (что-то) в метод ... Второй вопрос: может это включает параметры для методов, или это работает только с методами без входных параметров? – ReinaDelSur
Кажется, вы пытаетесь создать какую-то командную строку. Дайте список аргументов, проанализируйте с помощью Split, сначала это метод, затем аргументы. Вы можете ограничить количество и тип, чтобы упростить или обеспечить большую гибкость. В последнем случае вам понадобится всякий вид проверки соответствия типа. Довольно длительная тема. – Everts