Skill: Unity Code Architect (MCP-Enhanced)
Description: Generates production-ready C# scripts optimized for Unity 6, WebGL, and Il2Cpp. Focuses on educational Runglish output.
Tool Definition:
- •Name:
scaffold_unity_script - •Trigger: User wants to create a new script, system, or manager.
Execution Protocol:
- •
Scene Context Analysis (MCP Step):
- •Перед генерацией кода вызови
unityMCP:get_hierarchy(или аналог), чтобы понять, к какому объекту будет крепиться скрипт. - •Если объект уже существует, проанализируй его компоненты через
unityMCP:get_components, чтобы предложить правильныеRequireComponentили зависимости.
- •Перед генерацией кода вызови
- •
Architecture Choice:
- •Выбери базу:
MonoBehaviour(логика на сцене),ScriptableObject(данные/конфиги) илиPlain C# Class(чистая логика). - •Constraint: Всегда следуй правилам из
.agent/rules/unity-master.md(запретvar, запретnewв Update, запретThreading/IOдля WebGL).
- •Выбери базу:
- •
Code Generation Standards:
- •Attributes:
- •
[AddComponentMenu("Project/Category/Name")]— чтобы ты легко нашел скрипт в поиске Unity. - •
[RequireComponent(typeof(X))]— если скрипт не может работать без другого компонента. - •
[Tooltip("Описание на русском")]— ОБЯЗАТЕЛЬНО для всех полей, чтобы подсказки были в Инспекторе.
- •
- •Fields:
- •Только
[SerializeField] private. Никакихpublicполей (инкапсуляция). - •Именование:
_camelCaseдля приватных полей.
- •Только
- •Namespaces: Всегда
UnityEngine,UnityEngine.Events. Если нужно —UniTask.
- •Attributes:
- •
Mentorship Comments:
- •Внутри кода пиши комментарии на русском, объясняя архитектурный смысл.
- •Пример:
// Используем Awake для кэширования ссылок, чтобы не тратить ресурсы в Update.
- •
Wiring Instructions (Post-Action):
- •Дай четкую инструкцию: "Создай объект X, назови его Y, установи слой Z".
- •Предложи проверить результат через MCP после того, как пользователь прикрепит скрипт.
Example Output Style:
"Я проанализировал сцену через MCP и увидел, что у тебя уже есть Player. Я создам скрипт PlayerEffects, который автоматически подтянет AudioSource через RequireComponent."