🇺🇸 English | 🇺🇦 Українська
Unity-інструмент для аналізу структури C# коду та генерації XML та Markdown файлів із метаданими про класи, методи та поля. Спеціально розроблений для покращення контексту для AI-асистентів і інструментів. Дозволяє AI краще розуміти архітектуру проєкту без необхідності індексувати весь код.
- Відкрийте Package Manager у Unity (Window > Package Manager)
- Натисніть "+" у верхньому лівому куті
- Оберіть "Add package from git URL..."
- Вставте URL:
https://github.com/ErikTakoev/Unity-AI-Context.git - Натисніть "Add"
-
У головному меню оберіть:
Tools > AI Context > Create Settings -
Файл
CodeAnalyzerSettings.assetбуде створено автоматично у папціAssets/Expecto. -
За потреби перемістіть файл у бажану папку проєкту.
-
Налаштуйте параметри:
XML Generation
- Generate XML: вмикає генерацію XML-файлів
- Output Directory: директорія для збереження XML-файлів
- Namespace Filters: простори імен для аналізу
- Combined Namespace Filters: простори імен, які потрібно об'єднати в один XML-файл
Markdown Generation
- Generate Markdown: вмикає генерацію Markdown-файлів для зручного читання
- Markdown Output Directory: директорія для збереження Markdown-файлів (за замовчуванням
Docs)
Аналіз коду запускається автоматично при старті Unity або перекомпіляції скриптів. Також можна запустити аналіз вручну:
- У головному меню оберіть:
Tools > AI Context > Generate Context
Додає додатковий контекст до класу, методу, поля або властивості:
[ContextCodeAnalyzer(
@purpose: "Attempts to generate a new chip if the generator is charged and there is free space.",
@usage: "Call when generator is charged and a chip needs to be generated, either automatically or manually.",
@returns: "True if a chip was generated, false otherwise.",
@notes: "Handles charge decrement, state transitions, and chip creation. Sets waiting state if no space is available."
)]
private bool TryGenerateChip()
{
...
}Виключає клас, метод або поле з аналізу:
[IgnoreCodeAnalyzer]
private void TestFillField()
{
...
}- Файл правил: context-guidelines.mdc — додай правило для cursor, або використовуй як контекст
- Промпт:
"Add context for classes, methods, and fields according to the rules in @context-guidelines.mdc"— використовуй цей точний текст для кращих результатів - Запусти AI-агент на твоїх файлах коду
- Перевір згенеровані контекстні атрибути
Згенеровані XML-файли містять таку інформацію:
<CodeAnalysis Namespace="Merge2">
<Class n="ChipGenerator" b="Chip" c="Purpose: Represents a chip that can generate other chips, supporting both automatic and manual generation modes.; Usage: Attach to a cell in the game field. Initialize with ChipData. Handles chip generation, charging, and visual effects.; Notes: Manages event subscriptions, runtime state, and effect activation. Key for gameplay mechanics involving chip creation and field interaction.">
<Fields>
...
<Field v="- generatorData: ChipGeneratorData" c="Purpose: Stores static configuration for the chip generator.; Usage: Initialized in Init from ChipData. Used for generation logic.; Notes: Should not be null. Affects generator mode and chip creation." />
...
</Fields>
<Methods>
...
<Method v="- TryGenerateChip(): bool" c="Purpose: Attempts to generate a new chip if the generator is charged and there is free space.; Usage: Call when generator is charged and a chip needs to be generated, either automatically or manually.; Returns: True if a chip was generated, false otherwise.; Notes: Handles charge decrement, state transitions, and chip creation. Sets waiting state if no space is available." />
...
</Methods>
</Class>
</CodeAnalysis>Пояснення скорочень:
- n — ім'я класу
- b — базовий клас
- c — контекст (опис)
- v — значення
Модифікатори доступу:
- ++ та + — public
- +- — public getter, private setter
- ~ — protected
- - — private
Інструмент автоматично генерує Markdown файли, які зручно читати людям. Вони містять:
- Структурований зміст (Table of Contents)
- Інформацію про наслідування
- Красиво відформатований контекст (Code Analyzer Context) з виділеними ключами
- Списки полів та методів з їх описами
Це дозволяє використовувати згенеровану документацію як для AI, так і для розробників.