AgentSkillsCN

Unity Architect

Unity 架构师

SKILL.md

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:

  1. Scene Context Analysis (MCP Step):

    • Перед генерацией кода вызови unityMCP:get_hierarchy (или аналог), чтобы понять, к какому объекту будет крепиться скрипт.
    • Если объект уже существует, проанализируй его компоненты через unityMCP:get_components, чтобы предложить правильные RequireComponent или зависимости.
  2. Architecture Choice:

    • Выбери базу: MonoBehaviour (логика на сцене), ScriptableObject (данные/конфиги) или Plain C# Class (чистая логика).
    • Constraint: Всегда следуй правилам из .agent/rules/unity-master.md (запрет var, запрет new в Update, запрет Threading/IO для WebGL).
  3. Code Generation Standards:

    • Attributes:
      • [AddComponentMenu("Project/Category/Name")] — чтобы ты легко нашел скрипт в поиске Unity.
      • [RequireComponent(typeof(X))] — если скрипт не может работать без другого компонента.
      • [Tooltip("Описание на русском")] — ОБЯЗАТЕЛЬНО для всех полей, чтобы подсказки были в Инспекторе.
    • Fields:
      • Только [SerializeField] private. Никаких public полей (инкапсуляция).
      • Именование: _camelCase для приватных полей.
    • Namespaces: Всегда UnityEngine, UnityEngine.Events. Если нужно — UniTask.
  4. Mentorship Comments:

    • Внутри кода пиши комментарии на русском, объясняя архитектурный смысл.
    • Пример: // Используем Awake для кэширования ссылок, чтобы не тратить ресурсы в Update.
  5. Wiring Instructions (Post-Action):

    • Дай четкую инструкцию: "Создай объект X, назови его Y, установи слой Z".
    • Предложи проверить результат через MCP после того, как пользователь прикрепит скрипт.

Example Output Style: "Я проанализировал сцену через MCP и увидел, что у тебя уже есть Player. Я создам скрипт PlayerEffects, который автоматически подтянет AudioSource через RequireComponent."