Что нужно знать

Консоль в нашей игре позволяет управлять персонажем, выдавать предметы, тестировать функционал и создавать свои команды. С помощью консольных команд игроки могут:

  • Выдавать предметы

  • Включать демо-контент

  • Моментально переходить в другой мир

  • Создавать новые команды, которые будут автоматически доступны в игре

Система команд построена так, чтобы любой игрок с базовыми знаниями C# мог создать собственную команду, следуя простым правилам и шаблонам.

Как это работает

Каждая команда — это обычный C# класс, который:

  1. Наследуется от базового класса BaseConsoleCommand.

  2. Имеет обязательные свойства:

    • Name — имя команды (что вводится в консоль)

    • Description — краткое описание

    • Usage — пример использования команды

  3. Реализует метод Execute(string[] args, ConsoleContext context), где описана логика команды.

Все команды автоматически регистрируются при запуске игры через менеджер консоли (ConsoleManager). Игрокам не нужно ничего регистрировать вручную — достаточно положить .cs файл команды в папку Assets/Scripts/Console/Commands/.

Аргументы команд

  • Команды могут принимать аргументы через пробел:

  • В методе Execute аргументы доступны через массив string[] args.

  • Рекомендуется проверять длину массива и корректность аргументов, чтобы избежать ошибок.

Доступ к игровым системам

Метод Execute получает объект ConsoleContext, который содержит ссылки на основные игровые системы, к которым команда может обращаться:

Пример использования:

Где хранить команды

  • Все кастомные .cs файлы команд помещаются в папку:

  • Любой класс, унаследованный от BaseConsoleCommand, автоматически подхватывается консолью.

  • Игроки могут создавать свои подпапки внутри Commands, это не нарушает работу системы, но эти папки не будут как-либо задействованы в игре.

В следующих разделах

  • Пошаговое создание команды: как открыть шаблон и написать первую команду

  • Примеры команд: give, help, load

  • Шаблон команды: готовый .cs файл с комментариями для игроков

Last updated