Начало создания команды
Введение
Теперь, когда вы знаете, что нужно для работы с консольными командами, давайте разберёмся как создавать свою первую команду.
В этой системе игроки могут писать команды без доступа к Unity, используя только текстовый редактор (VS Code, Sublime, Notepad++) и папку для команд:
C:\Users\{пользователь}\AppData\LocalLow\Van's Studio\Creative Project\Custom\CommandsКаждая команда — это отдельный C# класс, который наследуется от BaseConsoleCommand. После того как вы сохраните файл, игра автоматически обнаружит его при следующем запуске и добавит команду в консоль.
Создание нового файла команды
Откройте папку:
C:\Users\{пользователь}\AppData\LocalLow\Van's Studio\Creative Project\Custom\CommandsСоздайте новый текстовый файл и назовите его, например:
ExampleCommand.csВажно: имя файла должно совпадать с именем класса внутри файла.
Откройте файл в текстовом редакторе.
Добавьте базовую структуру команды:
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
(если есть) для работы с квестами и задачами
Пример использования:
Рекомендации по написанию команд
Проверяйте уникальность имени команды — нельзя создавать несколько команд с одинаковым
Name.Всегда указывайте
DescriptionиUsage, чтобы другие игроки могли использовать вашу команду.Обрабатывайте аргументы корректно, проверяя их количество и тип.
Используйте
context.Console.Log()для вывода сообщений, вместоDebug.Log(). Это гарантирует, что сообщения появятся именно в консоли игры.Соблюдайте стиль кода, чтобы команды было легко читать другим игрокам.
Можно создавать подпапки внутри
Commandsдля организации своих команд — это не ломает регистрацию.
Проверка и тестирование
Сохраните файл в папку
Custom/Commands.Запустите игру. Консоль автоматически обнаружит новый класс и зарегистрирует команду.
Откройте консоль и введите команду:
Если всё сделано правильно, команда выполнится, и вы увидите вывод через context.Console.Log.
Возможные ошибки
Несовпадение имени файла и имени класса.
Отсутствие наследования от
BaseConsoleCommand.Ошибки в аргументах без проверки их длины и типа.
Использование
Debug.Logвместоcontext.Console.Log— сообщения не будут видны в консоли.
Итог
После прочтения этой страницы вы должны полностью понимать:
Где создавать файлы команд
Как писать класс команды
Как использовать аргументы
Как работать с игровыми системами через
ConsoleContextКак тестировать и исправлять ошибки
Следующая страница будет посвящена пошаговому созданию рабочей команды с реальным примером (teleport и give) и готовым шаблоном для копирования.
Last updated