# Unity 다시 하기

4회차(9월 19일) 수업에서 Cursor 에 말로 시켜 Unity 장면을 만든 것을 집에서 다시 열 때 필요한 것을 모은 보충 자료입니다. Cursor 와 Unity 를 잇는 것이 Unity MCP 이고, 여기서는 [MCP for Unity](https://github.com/CoplayDev/unity-mcp)(CoplayDev) 를 기준으로 설명합니다.

장면을 만들기 시작하면 [4회차 · Unity MCP 는 Plan 부터](https://opencircuit.club/wiki/lab/unity-plan) 도 같이 보세요. 말로 시키기 전에 Plan 모드로 계획을 먼저 세우는 순서입니다.

프로젝트를 다시 열 때마다 하는 일은 하나입니다. **Unity 에서 서버를 켜고, Cursor 에서 연결이 초록인지 보는 것.** 나머지는 한 번 해 두면 남습니다.

## 다시 열 때마다

1. Unity Hub 에서 수업 때 만든 프로젝트를 엽니다.
2. Unity 위쪽 메뉴 **Window → MCP for Unity** 를 엽니다.
3. **Start Server** 를 누릅니다. 잠시 뒤 상태 칸에 **Session Active** 가 뜨면 Unity 쪽은 준비된 것입니다.
4. Cursor 에서 **Settings → MCP** 로 가서 `unityMCP` 가 켜져 있고 초록 점인지 봅니다. 꺼져 있으면 켭니다.
5. Cursor 채팅에 「지금 씬에 있는 오브젝트를 알려 줘」라고 보내 봅니다. 목록이 돌아오면 연결된 것입니다.

> [!NOTE]
> Unity 를 껐다 켜면 서버도 꺼집니다. 그래서 3번을 매번 누릅니다. MCP for Unity 창의 **Advanced Settings** 에서 **Auto-Start Server on Editor Load** 를 켜 두면 프로젝트를 열 때 저절로 켜집니다.

## 연결이 안 될 때

- **Cursor 에 `unityMCP` 가 아예 없다** → MCP for Unity 창에서 **Configure All Detected Clients** 를 누릅니다. 여러 번 눌러도 괜찮습니다. 그다음 Cursor 를 껐다 켜고 4번부터 다시 봅니다.
- **`unityMCP` 가 빨간 점이다** → Unity 쪽 서버가 꺼져 있을 때가 대부분입니다. 3번의 **Start Server** 를 누르고 Cursor 에서 새로고침합니다.
- **Start Server 를 눌러도 켜지지 않는다** → 서버를 돌리는 `uv` 가 없거나 찾지 못한 경우입니다. 터미널에서 `uv --version` 을 쳐서 숫자가 나오는지 봅니다. 안 나오면 [uv 설치](https://docs.astral.sh/uv/getting-started/installation/) 뒤 Unity 를 다시 켭니다.
- **처음 설치하는 컴퓨터다** → Unity 에서 **Window → Package Manager → + → Add package from git URL...** 에 아래 주소를 붙여 넣습니다. 설치가 끝나면 설정 창이 뜨고, 그 안내대로 Python 과 uv 를 확인한 뒤 Cursor 를 골라 **Configure Selected** 를 누릅니다.

```text
https://github.com/CoplayDev/unity-mcp.git?path=/MCPForUnity#main
```

## 되돌리기

말로 시키다 보면 의도와 다르게 바뀔 때가 있습니다. 그래서 **잘 된 순간마다 씬을 저장**합니다(<kbd>Ctrl</kbd>+<kbd>S</kbd>, Mac 은 <kbd>Cmd</kbd>+<kbd>S</kbd>).

- 방금 바뀐 것 하나는 Unity 에서 <kbd>Ctrl</kbd>+<kbd>Z</kbd> 로 먼저 돌려 봅니다.
- 여러 번 시킨 뒤라 어디서 틀어졌는지 모르겠으면, 씬을 저장하지 않고 닫은 뒤 마지막으로 저장한 씬을 다시 엽니다.
- 크게 바꾸기 전에는 **File → Save As** 로 씬을 다른 이름으로 한 벌 남겨 두면 안심입니다.
- Cursor 가 만든 스크립트는 Cursor 채팅의 되돌리기(Restore)로 돌아갑니다. 씬 안의 배치는 여기로 돌아가지 않으니 위의 저장이 필요합니다.

## 포스트 프로세싱 다시 입히기

포스트 프로세싱은 다 만든 화면 위에 빛 번짐, 색, 거친 입자 같은 질감을 한 겹 더 씌우는 것입니다. 씬에 **Volume** 이 하나 있고, 카메라가 그것을 받아들이게 되어 있어야 보입니다.

Cursor 에 시킬 때는 이렇게 말하면 됩니다.

> 씬에 Global Volume 을 하나 만들고 Bloom 과 Vignette 를 넣어 줘. 메인 카메라의 Post Processing 도 켜 줘.

손으로 할 때는 이 순서입니다.

1. Hierarchy 빈 곳을 오른쪽 클릭 → **Volume → Global Volume**.
2. 만들어진 Global Volume 을 고르고 Inspector 의 **Profile** 옆 **New** 를 누릅니다.
3. **Add Override → Post-processing** 에서 효과를 고릅니다. 빛 번짐은 **Bloom**, 가장자리 어둡게는 **Vignette**, 색감은 **Color Adjustments**, 필름 입자는 **Film Grain** 입니다.
4. 넣은 효과의 항목 왼쪽 체크를 켜야 값이 적용됩니다. 값을 바꾸면 화면이 바로 바뀝니다.
5. Main Camera 를 고르고 Inspector 의 **Rendering → Post Processing** 이 체크되어 있는지 봅니다.

> [!NOTE]
> Game 창에서는 보이는데 Scene 창에서 안 보이면, Scene 창 위쪽 도구 막대의 효과 켜기 버튼이 꺼져 있는 것입니다. 작품에는 영향이 없습니다.

## Recorder 로 다시 녹화하기

Recorder 는 ▶ 로 실행한 장면을 영상 파일로 남깁니다. 강사님 Figma 보드에 올릴 짧은 영상도 이것으로 만듭니다.

1. 처음이면 **Window → Package Manager** 에서 왼쪽을 **Unity Registry** 로 두고 **Recorder** 를 찾아 **Install**.
2. **Window → General → Recorder → Recorder Window** 를 엽니다.
3. **Add Recorder → Movie** 를 고릅니다. 형식은 MP4 가 무난합니다.
4. **START RECORDING** 을 누르면 장면이 실행되면서 녹화가 시작됩니다. 멈추려면 같은 자리의 버튼을 다시 누르거나 ▶ 를 끕니다.
5. 파일은 프로젝트 폴더 안의 `Recordings` 폴더에 생깁니다. 저장 위치는 Recorder 창의 **Output File** 에서 바꿀 수 있습니다.

> [!WARNING]
> 녹화 중에는 컴퓨터가 무거워집니다. 장면이 뚝뚝 끊기면 Recorder 창에서 해상도를 낮추거나, 포스트 프로세싱 효과를 몇 개 끄고 다시 녹화해 보세요.

## 오류가 났을 때

- Unity 아래쪽 **Console** 창의 빨간 줄이 오류입니다. Console 이 안 보이면 **Window → General → Console**.
- Cursor 에 「Unity 콘솔의 오류를 읽고 고쳐 줘」라고 하면 MCP 로 직접 읽어 옵니다. 복사해서 붙여 넣어도 됩니다.
- 고친 뒤에도 같은 오류가 계속 나면 되돌리기로 돌아간 다음, 한 번에 하나씩만 다시 시킵니다.
- 화면 사진 한 장과 무엇을 하다가 그렇게 됐는지 한 줄이면 카톡으로 물어보셔도 됩니다. 막혔을 때 공통 순서는 [막힐 때](https://opencircuit.club/wiki/stuck) 에 있습니다.

## 어디서 왔나

4회차 수업은 홍서연 작가가 진행했습니다. 이 글은 배준형이 수업을 참관한 뒤, 집에서 다시 할 때 막히기 쉬운 곳을 자기 지식으로 정리한 것입니다. 홍서연 작가의 프롬프트와 작업은 싣지 않았습니다.

Unity 와 Cursor 를 잇는 MCP 는 여러 가지가 있고 무엇을 써도 됩니다. 이 글은 배준형이 고른 MCP for Unity(CoplayDev, MIT 라이선스)를 기준으로 적었고, 수업에서 쓴 것과 다를 수 있습니다. 버튼 이름과 설치 주소는 그 [공식 문서](https://coplaydev.github.io/unity-mcp/)를 따랐습니다.
