Введение

Консоль движка NeoAxis Engine - это удобное и простое средство для вывода отладочной информации, а также ввода команд. Консоль удобно использовать как вспомогательное средство при разработке вашего приложения.

Чтобы вызвать консоль, нужно нажать клавишу ~. Повторное нажатие той же клавиши скрывает консоль.

Список команд консоли можно получить введя команду commands.

Использование консоли в вашем приложении

Код и API консоли определены в классе EngineConsole, располагающийся в GameCommon.dll. Сейчас мы познакомимся с методами этого класса.

Вывод в консоль
Консоль позволяет выводить строковые значения. Для этого используется метод Print.

Код:
EngineConsole.Instance.Print( "Hello Console!" );


https://b.radikal.ru/b12/1906/4e/1fa000809044.jpg

Кроме того можно выделять текст цветом. В таком случае, после строки, методу Print передается еще и цвет.

Код:
EngineConsole.Instance.Print( "Hello Console!", new ColorValue( 1, 0, 0 ) );


https://b.radikal.ru/b18/1906/b3/6811136d9bb3.jpg

Добавление новых команд

Помимо стандартных команд в консоли, вы можете использовать собственные команды. Чтобы добавить команду, в классе 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.

https://a.radikal.ru/a27/1906/53/0793441c61ab.jpg

Вызов команды из кода

Также, команду консоли можно вызвать непосредственно из приложения. Для этого используется метод ExecuteString, заменяющий ввод команды пользователем.

Код:
EngineConsole.Instance.ExecuteString( "my_command" );