Начало создания команды

Введение

Теперь, когда вы знаете, что нужно для работы с консольными командами, давайте разберёмся как создавать свою первую команду.

В этой системе игроки могут писать команды без доступа к Unity, используя только текстовый редактор (VS Code, Sublime, Notepad++) и папку для команд:

C:\Users\{пользователь}\AppData\LocalLow\Van's Studio\Creative Project\Custom\Commands

Каждая команда — это отдельный C# класс, который наследуется от BaseConsoleCommand. После того как вы сохраните файл, игра автоматически обнаружит его при следующем запуске и добавит команду в консоль.

Создание нового файла команды

  1. Откройте папку:

C:\Users\{пользователь}\AppData\LocalLow\Van's Studio\Creative Project\Custom\Commands
  1. Создайте новый текстовый файл и назовите его, например:

ExampleCommand.cs

Важно: имя файла должно совпадать с именем класса внутри файла.

  1. Откройте файл в текстовом редакторе.

  2. Добавьте базовую структуру команды:

using UnityEngine;

public class ExampleCommand : BaseConsoleCommand
{
    public override string Name => "example";
    public override string Description => "Пример команды";
    public override string Usage => "example <args>";

    public override void Execute(string[] args, ConsoleContext context)
    {
        // Логика команды
    }
}

Объяснение структуры

  • Name — это имя команды, которое игроки вводят в консоль. Оно должно быть коротким, понятным и уникальным.

  • Description — краткое описание команды, которое будет отображаться при вызове команды help.

  • Usage — пример использования команды, показывающий, какие аргументы она принимает.

  • Execute — метод, который выполняется, когда игрок вводит команду в консоль. Всё действие команды должно быть здесь.

Совет: пишите описания ясно и коротко, чтобы другим игрокам было понятно, что делает команда.

Работа с аргументами

Аргументы — это данные, которые игрок передаёт команде через консоль. Например:

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

Проверка аргументов

Важно проверять количество и корректность аргументов:

Преобразование аргументов

Если команда работает с числами или координатами, нужно преобразовать строки в числа:

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

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

Через объект ConsoleContext команды имеют безопасный доступ к ключевым системам игры:

Поле
Назначение

context.Player

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

context.Inventory

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

context.Console

Ссылка на консоль для вывода сообщений

context.WorldManager

(если есть) для работы с игровым миром

context.QuestManager

(если есть) для работы с квестами и задачами

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

Рекомендации по написанию команд

  1. Проверяйте уникальность имени команды — нельзя создавать несколько команд с одинаковым Name.

  2. Всегда указывайте Description и Usage, чтобы другие игроки могли использовать вашу команду.

  3. Обрабатывайте аргументы корректно, проверяя их количество и тип.

  4. Используйте context.Console.Log() для вывода сообщений, вместо Debug.Log(). Это гарантирует, что сообщения появятся именно в консоли игры.

  5. Соблюдайте стиль кода, чтобы команды было легко читать другим игрокам.

  6. Можно создавать подпапки внутри Commands для организации своих команд — это не ломает регистрацию.

Проверка и тестирование

  1. Сохраните файл в папку Custom/Commands.

  2. Запустите игру. Консоль автоматически обнаружит новый класс и зарегистрирует команду.

  3. Откройте консоль и введите команду:

Если всё сделано правильно, команда выполнится, и вы увидите вывод через context.Console.Log.

Возможные ошибки

  • Несовпадение имени файла и имени класса.

  • Отсутствие наследования от BaseConsoleCommand.

  • Ошибки в аргументах без проверки их длины и типа.

  • Использование Debug.Log вместо context.Console.Log — сообщения не будут видны в консоли.

Итог

После прочтения этой страницы вы должны полностью понимать:

  • Где создавать файлы команд

  • Как писать класс команды

  • Как использовать аргументы

  • Как работать с игровыми системами через ConsoleContext

  • Как тестировать и исправлять ошибки

Следующая страница будет посвящена пошаговому созданию рабочей команды с реальным примером (teleport и give) и готовым шаблоном для копирования.

Last updated