Есть ли библиотеки или другие модули под Unity, позволяющие написать компилятор?
Мне требуется реализовать динамическую проверку кода на Unity, хотелось бы знать, существуют ли готовые библиотеки или придется писать компилятор с нуля?
Ответы (1 шт):
Автор решения: Арман
→ Ссылка
У вас есть 2 варианты.
Всё это взять в
stringи проверять весь код долго и счастливо, при том что у вас нет корневой доступ к коде, то есть ваша проверка будет работать медленнее, чем в обычных компиляторах.Добавить этот код к своему и с помощью оператора
tryиcatchловить все ошибки.
Второй вариант выглядит примерно так.
using UnityEngine;
using UCompile;
public class CompileClassExample : MonoBehaviour
{
void Compile(string input)
{
if(!string.IsNullOrEmpty(input))
{
CSScriptEngine engine = new CSScriptEngine();
engine.AddUsings("using UnityEngine;");
IScript result = engine.CompileCode(input);
try
{
result.Execute();
}
catch(Exception error)
{
Debug.Log(error);
}
}
}
}
UCompile и есть та самая библиотека.