Введение
Консоль движка NeoAxis Engine - это удобное и простое средство для вывода отладочной информации, а также ввода команд. Консоль удобно использовать как вспомогательное средство при разработке вашего приложения.
Чтобы вызвать консоль, нужно нажать клавишу ~. Повторное нажатие той же клавиши скрывает консоль.
Список команд консоли можно получить введя команду commands.
Использование консоли в вашем приложении
Код и API консоли определены в классе EngineConsole, располагающийся в GameCommon.dll. Сейчас мы познакомимся с методами этого класса.
Вывод в консоль
Консоль позволяет выводить строковые значения. Для этого используется метод Print.
EngineConsole.Instance.Print( "Hello Console!" );
Кроме того можно выделять текст цветом. В таком случае, после строки, методу Print передается еще и цвет.
EngineConsole.Instance.Print( "Hello Console!", new ColorValue( 1, 0, 0 ) );
Добавление новых команд
Помимо стандартных команд в консоли, вы можете использовать собственные команды. Чтобы добавить команду, в классе EngineConsole имеется метод AddCommand. При добавлении команды нужно указать ее имя, а также метод, вызываемый при исполнении команды.
EngineConsole.Instance.AddCommand("my_command", MyCommand);
Метод, реализующий вашу команду, должен получать на вход единственный параметр - строку аргументов. В этой строке будет содержаться символы, следующие в строке после имени команды. Т.е. полностью команда в консоли имеет вид: имя_команды аргументы.
В примере ниже мы напишем метод для команды, выводящий в консоль сумму двух аргументов, разделенных пробелом.
public void MyCommand(string arguments) { //Преобразуем строку аргументов в массив строк char[] splitter = new char[1] {' '}; string[] argumentsArray = arguments.Split(splitter); //Проверяем количество аргументов if (argumentsArray.Length < 2) return; //Пробуем преобразовать строки в числа int arg1, arg2; if (!int.TryParse(argumentsArray[0], out arg1) || !int.TryParse(argumentsArray[1], out arg2)) return; //Выводим результат в консоль EngineConsole.Instance.Print((arg1 + arg2).ToString()); }
Скомпилируем и запустим проект. Введя команду: "my_command 2 2", мы получим результат - 4.
Вызов команды из кода
Также, команду консоли можно вызвать непосредственно из приложения. Для этого используется метод ExecuteString, заменяющий ввод команды пользователем.
EngineConsole.Instance.ExecuteString( "my_command" );