오늘 Unity 6으로 간단한 모바일 게임을 만들어 Android APK까지 뽑았다. 특이한 건 씬 조작과 스크립트 작성을 상당 부분 AI 어시스턴트(Kiro)에게 시켰다는 점이다. Unity 6에는 공식 MCP(Model Context Protocol) Server 기능이 들어 있어서, 서드파티 플러그인 없이 AI를 Unity 에디터에 바로 붙일 수 있다.
이 글은 그 연동 설치부터 APK 빌드까지 전 과정이다. 중간에 반드시 걸리는 함정 세 개 — 에디터 버전(6000.3 미만이면 메뉴가 안 보임), New Input System, 그리고 MCP로는 APK 빌드가 끝까지 안 되는 문제 — 를 어떻게 넘겼는지까지 정리했다. (로컬 경로는 플레이스홀더다.)
연동 구조
먼저 그림부터. Unity 에디터가 "외부에 노출하는 MCP 서버"를 켜면, AI 클라이언트가 relay를 거쳐 거기에 붙는다. 에디터가 켜져 있어야 브리지가 돈다.
왜 Unity 공식 MCP인가
AI를 Unity에 붙이는 서드파티 방법은 예전부터 있었다(Python·uv 설치, 별도 브리지 등). 그런데 Unity 6부터는 공식 Assistant 패키지에 MCP Server가 내장됐다. 외부 런타임을 안 깔아도 되고, Unity가 직접 "에디터를 노출하는 MCP 서버"를 켜면 AI가 콘솔 읽기·C# 실행·씬 캡처 같은 도구를 바로 쓴다.
함정 ① 에디터 버전 — 6000.3 미만이면 메뉴가 없다
제일 먼저 걸리는 지점이다. 공식 MCP 기능은 Unity 6.3(에디터 버전 6000.3) 이상에서만 나온다.
- 그냥 "Unity 6" =
6000.0을 깔면 MCP 메뉴 자체가 안 보인다. 버전 선택 때 반드시 6000.3 이상을 고른다. 6000.3(6.3 LTS),6000.6(6.6) 등 6.3 이상이면 다 된다. 안정성을 원하면 LTS인 6.3이 낫다.- 아직 Pre-release라 Package Manager에 Assistant가 안 보이면,
Project Settings → Package Manager에서 Show Pre-Release Package Versions를 켠다.
6000.x로 표기된다. "6"이 아니라 "6000"으로 보이는 게 정상이다. 이미 6000.0을 깔았어도 지울 필요 없이, Hub에서 6000.3 이상을 추가 설치하면 된다.설치 흐름 — Hub → 에디터 → Assistant → MCP
AI 클라이언트 연결
Unity MCP 설정 페이지에서 Integrations → (클라이언트) → Configure를 누르면, 하단에 OS별 설정 파일 경로와 붙여넣을 JSON 블록이 표시된다.
{
"mcpServers": {
"unity": {
"command": "<Unity 화면에 표시된 relay 실행 경로>",
"args": ["<Unity 화면에 표시된 인자들>"],
"disabled": false,
"autoApprove": []
}
}
}
이 JSON을 AI 클라이언트의 mcp.json에 붙여넣는다. 전역이면 C:\Users\<사용자명>\.kiro\settings\mcp.json, 프로젝트 한정이면 워크스페이스의 .kiro/settings/mcp.json.
command·args·relay 경로는 Unity 화면에 뜬 값을 그대로 복사한다. 버전마다 달라서 손으로 지어내면 relay를 못 찾아 연결이 실패한다. 그리고 "disabled": false인지 꼭 확인한다(일부 안내가 true로 쓰라는데, 실제로 쓰려면 false다).연결되면 AI 쪽 MCP 패널에 unity Connected (N tools)로 뜬다. 가장 안전한 첫 테스트는 "현재 콘솔 로그 읽어줘" — 로그가 돌아오면 정상이다. 그다음 "원점에 큐브 만들고 Rigidbody 붙여줘" 같은 씬 조작을 시켜볼 수 있다.
함정 ② New Input System — 구형 Input API가 안 먹는다
Unity 6 신규 프로젝트는 기본이 New Input System 전용이다. 이 상태에서 구형 Input.GetKey() / Input.GetAxisRaw()는 동작하지 않는다. AI가 생성한 예제가 구형 입력을 쓰면 이동·발사가 전부 안 먹는 현상이 난다.
- 정석: 처음부터 New Input System API로 쓴다.
Keyboard.current.spaceKey.isPressed식,using UnityEngine.InputSystem;추가. - 비권장 대안: Player → Active Input Handling을 Both로 바꾸는 방법도 있으나, Both로 바꿔도 런타임에서 구형 Input이 안 먹는 경우가 있었다(재시작 후에도). New API로 바꾸자 즉시 정상. Both에 기대지 말 것.
- 디버깅 팁: 입력이 안 먹으면 매 프레임 입력값을
Debug.Log로 찍는 프로브를 붙여 확인. 그리고 키 입력은 Game 뷰에 포커스(화면 클릭)가 있어야 들어온다.
함정 ③ MCP로는 APK 빌드가 끝까지 안 된다
오늘의 핵심 교훈이다. 씬 조작·스크립트 작성은 MCP(AI)로 잘 됐는데, Android APK 빌드만은 MCP로 끝까지 안 됐다.
User interactions are not supported for MCP tool calls
BuildPipeline.BuildPlayer가 내부적으로 상호작용(SDK 라이선스 동의 등)을 요구하는데, MCP 도구 호출은 그런 대화형 입력을 지원하지 않아 막힌다. 모듈·설정이 전부 정상이어도 마찬가지다.
- 모듈 추가: Hub → Installs → 버전 ⚙ → Add Modules에서 Android Build Support + OpenJDK + Android SDK & NDK Tools 추가.
- 모듈 추가 후 에디터 재시작 필수: "No Android module loaded. Editor will need to be restarted" 경고가 뜬다. 껐다 켜야 Android 빌드가 활성화된다.
- SDK/NDK/JDK 임베디드: 경로가 비면 Edit → Preferences → External Tools에서 Hub 동봉(embedded)으로 체크.
- 빌드 실행: File → Build Settings/Build Profiles → Android 선택 → Build → 출력 경로 지정. 처음엔 Gradle 다운로드로 수 분, SDK 라이선스 창이 뜨면 Accept.
이렇게 에디터에서 직접 빌드하니 APK가 정상적으로 떨어졌다.
모바일 입력 — 키보드 스크립트는 폰에서 안 돈다
APK를 폰에 올리기 전에 하나 더. 데스크톱에서 키보드로 테스트한 스크립트는 폰에서 그대로는 동작하지 않는다. 터치 입력을 따로 넣어야 한다. Touchscreen.current.primaryTouch로 터치(드래그 이동 + 자동 발사 등)를 처리하고, 화면 방향은 PlayerSettings.defaultInterfaceOrientation으로 고정한다.
보너스 — MCP로 씬 편집할 때 Play 모드 함정
MCP로 씬을 편집할 때 Play 모드 중에 가한 변경은 Play를 멈추면 전부 되돌아간다(오브젝트 생성, 컴포넌트 연결, 스프라이트 교체 등).
- 씬 편집은 반드시 에디트 모드(
EditorApplication.isPlaying == false)에서 하고EditorSceneManager.SaveOpenScenes()로 저장. - Play 모드에서는 저장 API가 예외나 "User interactions are not supported" 오류를 낸다. MCP 명령 전에
isPlaying을 먼저 로그로 확인하면 헛작업을 막는다. - 스크립트 교체 직후엔 Unity가 재컴파일하느라 MCP 연결이 잠깐 끊긴다("Unity not detected"). 잠시 후 재시도하면 복구된다.
마치며
Unity 6의 공식 MCP는 "AI가 에디터를 직접 조작"하는 걸 플러그인 없이 가능하게 해준다. 콘솔 읽기·스크립트 작성·씬 구성까지는 AI에게 맡기고, 대화형 승인이 필요한 작업(APK 빌드의 SDK 라이선스 등)은 MCP로는 못 넘어가니 사람이 마무리한다. 이 경계만 이해하면 "AI가 밑작업, 사람이 최종 빌드"라는 분담이 꽤 자연스럽다.
가장 많이 데인 셋을 다시 정리하면 — 버전은 6000.3 이상(아니면 MCP 메뉴가 아예 없음), 입력은 New Input System으로(Both는 못 믿음), 빌드는 에디터에서 직접(MCP는 상호작용 못 함). 이 세 가지만 미리 알면 Unity 6 + AI로 APK까지 가는 길이 훨씬 매끄럽다.
'AI 개발' 카테고리의 다른 글
| Adjust 어트리뷰션 S3 BI 파이프라인 (0) | 2026.10.26 |
|---|---|
| Unity 6 + AI(MCP)로 모바일 슈팅 게임 만들기 — 콤보·보스·오브젝트 풀링 (0) | 2026.10.21 |
| CloudWatch 알람 메일에 AI 분석 붙이기 — Lambda + Bedrock Claude 파이프라인 (0) | 2026.10.15 |
| MCP로 AI 모델 여러 개를 개발 도구에 붙여 쓰는 법 (any-chat-completions-mcp) (0) | 2026.10.06 |
| 게임 매출·지표를 매일 아침자동으로 메일 리포트 받기 (0) | 2026.10.05 |