Консоль
Материал из NeoAxis Wikipedia.
[править] EngineConsole в деталях...
Чтобы открыть игровую консоль в игре нужно нажать клавишу тильда "~".
В консоли можно прописывать различные команды (как во многих играх), чтобы получить список доступных команд достаточно ввести команду "commands" без ковычек.
С помощью класса Engine.EngineConsole можно просто вывести текст в консоль:
EngineConsole.Instance.Print( "Hello Console!" );
Даже цветной:
EngineConsole.Instance.Print( "Hello Console!", new ColorValue( 1.0f, 0.0f, 0.0f ) );
Также можно добавить свою команду для консоли:
EngineConsole.Instance.AddCommand( "my_command", my_command );
"my_command" - имя команды (первый аргумент) my_command - имя функции обработчика (второй аргумент)
Для обработки команды нам понадобится функция которая ничего не возвращает и берет 1 аргумент типа string:
void my_command( string arguments )
{
}
Но если мы хотим передавать вместе с нашей командой один или несколько аргументов! Их надо вытащить из строки arguments. Если аргумент один:
void my_command( string arguments )
{
int arg;
if( !int.TryParse( arguments, out arg ) )
{
return; //Ошибка - неправильный аргумент
}
делаем какието действия с нашим аргументом...
}
Ну а если аргументов несколько:
void my_command( string arguments )
{
char[] splitter = new char[ 1 ] { ' ' };
string[] buf = arguments.Split( splitter );
int arg1, arg2;
if( !int.TryParse( buf[ 0 ], out arg1 ) || !int.TryParse( buf[ 1 ], out arg2 ) )
{
return; //Ошибка - неправильные аргументы
}
//делаем какието действия с нашими аргументами...
}
splitter - символ которым отделяются аргументы, в данном примере пробел buf - массив строк, где каждая строка наш аргумент (как в случае с 1 аргументом) Я привел пример с 2 аргументами, но их может быть и больше!
Теперь нашу команду можно использовать в игре, а можно и програмно вызывать консольную команду:
EngineConsole.Instance.ExecuteString( "my_command" );
Здесь я описал самые необходимые функции для работы с консолью :рисунок:
Автор GRANT
