씬마다 따로인 것, 프로젝트가 함께 쓰는 것
한 프로젝트 안의 씬들은 엔티티를 따로 가지지만, 스크립트 파일과 에셋은 함께 씁니다. 그래서 한 씬에서 공유 스크립트를 고치면 다른 씬의 게임도 바뀔 수 있습니다. 이 페이지는 무엇이 씬별이고 무엇이 공유인지, 그리고 AI GAME BUILDER가 공유 스크립트를 고쳐 다른 씬이 깨진 실측 사례와 대처를 설명합니다.
다섯 단위의 포함 관계는 프로젝트·씬·엔티티·컴포넌트·에셋에서 먼저 설명합니다.
씬별 데이터와 공유 데이터
| 씬마다 따로 | 프로젝트가 함께 씀 |
|---|---|
| HIERARCHY의 엔티티 목록과 계층 | 스크립트 파일(코드) |
엔티티의 Position·Rotation·Scale과 컴포넌트 값 | Upload로 올린 그림·소리 파일 |
| 어느 엔티티에 어느 스크립트를 붙였는지, 그 스크립트의 속성 값 | 머티리얼 등 ASSETS의 모든 에셋 |
| 어느 엔티티가 어느 머티리얼을 쓰는지 | AI GAME BUILDER의 대화 목록 |
표의 두 칸 가운데 실측으로 확인한 것은 스크립트 파일 공유(다른 씬이 깨진 사례), 올린 파일과 대화 목록이 씬을 바꿔도 보이는 것, 그리고 아래 머티리얼과 엔티티 값 실험입니다. 2026-10-30에 씬을 복제해 두고 원래 씬에서 머티리얼 Orange의 색을 파랑으로 바꾸자, 복제한 씬을 열어도 그 머티리얼을 쓰는 엔티티가 파랗게 보였습니다. 반대로 복제한 씬에서 Box의 Position X를 2로 바꿔도 원래 씬의 Box는 0 그대로였습니다(각 1회). 스크립트 속성 값이 씬마다 따로 저장되는지는 엔진 구조로 미루어 적은 것입니다. 작성 대기 두 씬에서 같은 스크립트 속성 값을 바꿔 보는 실측
게임 규칙은 두 칸에 걸쳐 있습니다. 규칙을 만드는 코드는 스크립트 파일에 있으므로 프로젝트가 함께 씁니다. 그 코드를 어느 엔티티에 붙이고 속성 값을 얼마로 두는지는 씬마다 따로일 것으로 보입니다.
공유 데이터가 화면에 보이는 방식
- ASSETS에는 다른 씬에서 쓰는 파일도 함께 보입니다. 지금 씬의 어떤 엔티티에도 붙어 있지 않은 파일이라도, 다른 씬의 엔티티가 쓰고 있을 수 있습니다.
- AI GAME BUILDER의 대화 목록은 씬을 바꿔도 그대로입니다. 다른 씬에서 나눈 대화가 지금 씬의 대화 목록에도 보입니다.
- Publish / Download로 공개할 때 SCENES 칸은 기본으로 지금 열린 씬만 체크되어 있습니다.
공유 스크립트 때문에 다른 씬이 깨진 사례
AI GAME BUILDER는 지금 열린 씬에 대한 요청을 받고도, 프로젝트에 이미 있는 스크립트를 찾아 이어 쓰거나 고친 사례가 있습니다. 한 번 확인한 바로는, AI가 다른 씬이 만들어 둔 livesManager.js를 알아보고 새 파일을 만들지 않은 채 그대로 이어 썼습니다. 이때 고친 스크립트를 다른 씬의 엔티티도 쓰고 있으면, 그 씬은 바뀐 코드로 실행됩니다.
실험 조건
같은 프로젝트에 씬 7개를 만들고, 씬마다 새 대화에서 같은 요청문으로 별 모으기 게임을 만들었습니다. 일부 씬에는 이어서 수정 요청도 보냈습니다. 그 뒤 앞서 만든 씬을 다시 열어 Launch로 실행했습니다.
관측한 결과
| 사례 | 무엇이 일어났는가 |
|---|---|
| 다른 씬의 게임이 깨짐 (1) | 6번째 씬에서 작업하는 동안 AI가 공유 스크립트를 바꿨습니다. 그 뒤 정상이던 4번째 씬의 게임이 시작하자마자 승리 문구를 띄웠습니다 |
| 다른 씬의 게임이 깨짐 (2) | 7번째 씬 작업에서 AI가 공유 스크립트 gameUI.js·recipeCollectible.js를 고쳤습니다. 그 뒤 1번째·2번째 씬에서는 별을 다 모으면 승리 문구는 떴지만, 모은 개수 표시가 0에서 오르지 않았습니다. 두 씬 모두 이 두 스크립트를 쓰고 있었습니다 |
| 새 파일을 만들지 못함 | 7번째 씬 작업에서 AI가 새 스크립트를 만들려 했지만, 6번째 씬 작업 때 남은 winBanner.js와 이름이 겹쳐 만들지 못했습니다 |
7개 씬 실험에서 다른 씬이 깨진 경우는 2건, 이름이 겹친 경우는 1건이었습니다.
다른 씬이 항상 깨지는 것은 아닙니다. 한 번 확인한 바로는, AI가 다른 씬과 함께 쓰는 livesManager.js를 고쳤지만 그 씬의 게임은 정상이었습니다. 다른 프로젝트에서 두 번째 씬에 새 게임을 만든 뒤에도 기본 씬의 게임은 정상이었습니다(1회). 공유 스크립트를 고친 결과가 다른 씬에 맞는지는 실행해 보기 전에는 알 수 없습니다.
대처
한 프로젝트 안에서 작업할 때
- AI 작업은 지금 만드는 게임의 씬에서만 합니다. 연습용 씬에서 AI에게 다시 일을 시키면, 공유 스크립트를 통해 지금 만드는 게임이 바뀔 수 있습니다.
- 새 씬에서 새 게임을 만들 때는 AI 창의 새 대화에서 시작합니다. 대화 목록은 프로젝트가 함께 쓰므로, 이전 대화에는 다른 씬에 대한 내용이 남아 있습니다. 위 실험은 모두 씬마다 새 대화로 진행했습니다.
- AI 작업이 끝날 때마다 계속 쓸 씬을 모두 실행합니다. 지금 씬뿐 아니라, 같은 프로젝트에서 계속 쓸 다른 씬도 SCENES 창에서 열어 Launch로 확인합니다. 위 사례 (1)에서 6번째 씬 작업의 마지막 줄은
자동 점검: 문제 없음이었지만, 4번째 씬은 깨져 있었습니다. - 바뀐 스크립트를 확인합니다. AI의 변경 보고에서 고친 스크립트 이름을 찾습니다. 다른 씬의 HIERARCHY에서
<>표시가 붙은 엔티티를 골라, SCRIPT 컴포넌트에 같은 스크립트가 있는지 봅니다. 절차는 AI가 바꾼 범위 확인하기에 있습니다. - 낯선 스크립트를 함부로 지우지 않습니다. ASSETS에서 지금 씬이 쓰지 않는 스크립트도 다른 씬이 쓰고 있을 수 있습니다.
다른 씬이 깨졌을 때
깨진 씬을 열고, 그 씬에서 본 증상을 그대로 적어 AI에게 수정을 요청합니다. 원인을 짐작해 적지 않고, 본 것과 원하는 결과를 함께 적습니다. 요청문 쓰는 법은 고치기 요청 보내기에 있습니다.
작성 대기 공유 스크립트 때문에 깨진 씬을 수정 요청으로 복구한 결과가 3회 이상 실측되면
작성 대기 요청문에 다른 씬의 스크립트를 고치지 말라고 적으면 이 문제를 막을 수 있는지 3회 이상 실측되면
게임을 서로 독립시키고 싶을 때
서로 영향을 주면 안 되는 게임은 다른 프로젝트에 만듭니다. 에셋은 프로젝트 단위이므로, 다른 프로젝트의 스크립트는 함께 쓰이지 않을 것으로 보입니다. 프로젝트를 나누면 스크립트가 분리되는지는 아직 시험하지 않았습니다. 같은 프로젝트 안에서 씬을 나누는 것만으로는 스크립트가 분리되지 않습니다.
작성 대기 프로젝트 만들기 화면이 확정되면 절차 링크 추가