# game-unity-specialist

Скилл для работы с Unity: разбирает MonoBehaviour, DOTS/ECS, URP и HDRP, Addressables и UI Toolkit, даёт готовый C# вместо общих советов.

- скилл · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · ★ 47
- Автор: AlterLab-IEU
- Лицензия: MIT · policy=mirror · начало файла — в конце страницы
- Исходник: https://github.com/AlterLab-IEU/AlterLab_GameForge/tree/HEAD/skills/engine-specialists/game-unity-specialist/SKILL.md
- Обновлён: 2026-03-30
- HTML: https://affpapa.org/nevibecode/skills/game-unity-specialist

## Что делает

Это скилл-субагент UnitySpecialist из коллекции AlterLab GameForge. Он подключается, когда в задаче всплывают Unity, C#, MonoBehaviour, DOTS/ECS, Shader Graph, Addressables, UI Toolkit, URP или HDRP, а также файлы `.unity` и `.cs`. Внутри — набор правил и примеров кода: как строить архитектуру на ScriptableObject, когда переходить на DOTS, а когда хватит MonoBehaviour.

Скилл держит состояние сессии: запоминает версию Unity, рендер-пайплайн, структуру проекта и прошлые решения, чтобы не советовать противоположное через десять сообщений. Если контекст сжали, состояние перечитывается из `production/session-state/active.md`. Для работы ему нужны инструменты Read, Glob, Grep, Write, Edit и Bash, а модель задана как opus.

Правила жёсткие: не использовать `FindObjectOfType` и `GameObject.Find` в рантайме, не складывать ассеты в папку Resources, явно писать модификаторы доступа, кэшировать `GetComponent<T>()` в `Awake()`. Рендер-пайплайн советует выбирать в начале проекта, потому что URP и HDRP не взаимозаменяемы на середине. Скилл не берётся за движко-независимую архитектуру и за вопросы по Godot или Unreal — для этого в коллекции есть game-technical-director.

## Требования
- Работает с: Unity, Unreal Engine, Godot

## Установка

### Claude Code (родная платформа)

1. **Через Skills CLI (Vercel)**
```bash
npx skills add AlterLab-IEU/AlterLab_GameForge --skill game-unity-specialist -a claude-code
```

2. **Вручную: положить файлы**
- Файл: `~/.claude/skills/game-unity-specialist/SKILL.md` — Папка скилла целиком; для одного проекта — .claude/skills/game-unity-specialist/

### Codex

1. **Через Skills CLI (Vercel)**
```bash
npx skills add AlterLab-IEU/AlterLab_GameForge --skill game-unity-specialist -a codex
```

2. **Вручную: положить файлы**
- Файл: `.agents/skills/game-unity-specialist/SKILL.md` — Для всех проектов — ~/.agents/skills/

### Cursor

1. **Через Skills CLI (Vercel)**
```bash
npx skills add AlterLab-IEU/AlterLab_GameForge --skill game-unity-specialist -a cursor
```

2. **Вручную: положить файлы**
- Файл: `.cursor/skills/game-unity-specialist/SKILL.md` — Cursor читает и .agents/skills/, и .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install AlterLab-IEU/AlterLab_GameForge game-unity-specialist
```

2. **Вручную: положить файлы**
- Файл: `.github/skills/game-unity-specialist/SKILL.md`

### Gemini CLI

1. **Через Skills CLI (Vercel)**
```bash
npx skills add AlterLab-IEU/AlterLab_GameForge --skill game-unity-specialist -a gemini-cli
```

2. **Командой платформы**
```bash
gemini skills install https://github.com/AlterLab-IEU/AlterLab_GameForge --path skills/engine-specialists/game-unity-specialist
```

### Windsurf (Devin Desktop)

**Вручную: положить файлы**
- Файл: `.devin/skills/game-unity-specialist/SKILL.md` — Старый путь .windsurf/skills/ тоже читается

### OpenCode

**Через Skills CLI (Vercel)**
```bash
npx skills add AlterLab-IEU/AlterLab_GameForge --skill game-unity-specialist -a opencode
```

### Claude.ai

**Claude.ai**
- Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills

Где указан файл, а не команда, — скопируй файлы из исходника в этот путь: https://github.com/AlterLab-IEU/AlterLab_GameForge/tree/HEAD/skills/engine-specialists/game-unity-specialist/SKILL.md

## Когда брать
- выбрать между MonoBehaviour и DOTS под конкретную нагрузку
- разложить игровые параметры по ScriptableObject вместо хардкода
- убрать `FindObjectOfType` и `GameObject.Find` из рантайма
- перевести загрузку ассетов с папки Resources на Addressables
- решить, когда заводить Assembly Definitions и как их нарезать

## Примеры запросов агенту
- Проверь мой `PlayerController.cs` — тут `GetComponent` вызывается в `Update`, перепиши через кэш в `Awake()`
- У меня 5000 снарядов на экране, стоит ли переводить их на DOTS/ECS или хватит MonoBehaviour?
- Разложи параметры прыжка из `PlayerMovement.cs` по ScriptableObject, чтобы их можно было крутить из инспектора

## Похожие
- [unity-game-developer](https://affpapa.org/nevibecode/agents/unity-game-developer.md) — субагент · 1122 установки
- [game-development](https://affpapa.org/nevibecode/skills/miles990-game-development.md) — скилл · 410 установок
- [performance-optimization](https://affpapa.org/nevibecode/skills/gamedev-skills-performance-optimization.md) — скилл · 7700 установок
- [router](https://affpapa.org/nevibecode/skills/router.md) — скилл · 6900 установок
- [reverse-document](https://affpapa.org/nevibecode/skills/reverse-document.md) — скилл · 461 установка
- [test-helpers](https://affpapa.org/nevibecode/skills/test-helpers.md) — скилл · 405 установок

Из того же набора: [alterlab-ieu/alterlab_gameforge](https://affpapa.org/nevibecode/by/alterlab-ieu/alterlab_gameforge.md) — 12 карточек

_Часть страницы не вошла по размеру — она есть в HTML-версии._

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
