unity-mcp-workflow
Unity MCP 도구로 스크립트·씬·컴포넌트·프리팹·직렬화 자산(.prefab/.unity/.asset/ScriptableObject)을 수정/Read 해야 할 때 참조한다.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Unity MCP 도구로 스크립트·씬·컴포넌트·프리팹·직렬화 자산(.prefab/.unity/.asset/ScriptableObject)을 수정/Read 해야 할 때 참조한다.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
| name | unity-mcp-workflow |
| description | Unity MCP 도구로 스크립트·씬·컴포넌트·프리팹·직렬화 자산(.prefab/.unity/.asset/ScriptableObject)을 수정/Read 해야 할 때 참조한다. |
| allowed-tools | Read, Edit, Glob, Grep, Bash, mcp__UnityMCP__read_console, mcp__UnityMCP__refresh_unity, mcp__UnityMCP__find_gameobjects, mcp__UnityMCP__manage_asset, mcp__UnityMCP__manage_material, mcp__UnityMCP__manage_components, mcp__UnityMCP__manage_gameobject, mcp__UnityMCP__manage_scene, mcp__UnityMCP__manage_prefabs, mcp__UnityMCP__manage_script |
방금 생성/수정한 클래스·MonoBehaviour 등을 다른 도구(manage_components(add) 등)에서 참조하기 전에 컴파일이 통과돼야 한다.
manage_script(create|apply_edits) 또는 Edit/Write로 .cs 변경.refresh_unity(wait_for_ready=True) — import + 컴파일 + 도메인 리로드까지 대기.read_console(types=["error"], count=20, include_stacktrace=True) 통과(error 0건) 확인 후에만 attach.| 상황 | fail_fast |
|---|---|
| 의존 시퀀스 (생성 → 부착) | True |
| 독립 변경 (5개 일괄 인스턴스화) | False |
동일 절차 안에서 같은 도구를 3회 이상 반복하면 batch로 묶는다. parallel=True는 조언 — Unity 메인 스레드 의존 작업은 순차 실행될 수 있다.
apply_text_edits/script_apply_edits 정밀 편집 시 동시 편집 사고 방지.
Read <파일> 또는 get_sha(path=...)로 현재 SHA 취득.precondition_sha256=<SHA> 전달.| 증상 | 복구 |
|---|---|
| 컴파일 에러 | read_console(include_stacktrace=True) → find_in_file 위치 → 수정 → refresh_unity(mode="force", wait_for_ready=True) → 재확인 |
| Stale file (SHA 불일치) | SHA 재취득 → 편집 재계산 → 재시도 (§3) |
| 도메인 리로드 연결 손실 | editor/state ready 상태까지 polling. 실패 시 STOP |
| "Already Exists" | find_gameobjects(name=...)로 충돌 확인 → 고유 이름 또는 기존 객체 삭제 후 재생성 |
| MCP 미가용 | 즉시 STOP, 메인에 보고. Edit 우회 금지 |
| YAML 헤더 손상 | 추가 변경 중단, 메인 보고. §6 포맷 복구 절차 |
.prefab/.unity/.asset/ScriptableObject 등 Unity 직렬화 자산을 다룰 때.
manage_prefabs(get_contents) / find_gameobjects / manage_components(get) / manage_scene(get_info) 등 구조화 MCP가 우선. Grep/Read는 텍스트 패턴이 명확하거나 GUID 추적 등 raw 파일 단위 작업일 때..mat, .asset, .prefab 신규) → manage_material/manage_asset/manage_prefabs. YAML hand-write 금지. .meta GUID는 Unity가 만들도록 한다.m_Enabled, 컴포넌트 값 등) → manage_components / manage_prefabs 우선. MCP가 그 필드를 못 다룰 때만 텍스트 Edit으로 폴백..cs 스크립트 변경 → §1.prefab asset · scene instance · 둘 다 중 무엇인지 잠그고, 동명 인스턴스가 여러 개면 전체 경로로 확정한다.Grep/find_gameobjects로 위치 먼저 찾고, 필요한 영역만 Read offset/limit로 ~30줄 윈도. 전체 구조 파악은 Explore subagent에 위임(메인 컨텍스트로 끌어오지 않는다).AssetDatabase.FindAssets로 씬·프리팹 검색 시 반드시 new[] { "Assets" }를 두 번째 인수로 전달(생략 시 Packages/까지 포함되어 예외).manage_prefabs unpack_completely로 원본 PrefabInstance를 완전 언팩한 뒤에 새 prefab을 만든다. 언팩 없이 raw YAML로 prefab을 직접 작성하면 fileID가 Unity 내부 sentinel 범위(100100000, 200100000 등)와 충돌해 PPtr cast가 깨진다.manage_prefabs create. 자동 발급 fileID는 sentinel 범위와 겹치지 않는다.100100000/200100000 계열 fileID를 새 prefab에 사용. ③open_prefab_stage → modify_contents → save_prefab_stage 사이에 다른 자산 수정 끼워넣기.open_prefab_stage → save_prefab_stage 한 번이면 Unity가 fileID를 재발급한다.