게임 이벤트 에디터
이벤트 라이브러리를 정리, 개선 및 유지관리하기 위한 기본 작업 공간입니다. **게임 이벤트 생성기**가 새로운 이벤트를 생성하기 위한 도구라면, 에디터는 생성된 이벤트의 전체 라이프사이클을 관리하는 곳입니다.

🚀 에디터 열기
다음 방법을 통해 에디터에 접속할 수 있습니다:
시스템 대시보드에서:
게임 이벤트 시스템 창 → "Game Event Editor" 버튼 클릭

🎛️ 설정 바 (Configuration Bar)
윈도우 상단에 위치한 이 바는 작업 범위를 결정합니다.
매니저 선택 (Manager Selection)
목적: 에디터를 현재 씬에서 활성화된 GameEventManager에 연결합니다.
동작:
- ✅ 시작 시 매니저를 자동 감지합니다.
- 🔄 씬을 전환할 때 자동으로 업데이트됩니다.
- 📌 핀 버튼을 클릭하면 해당 매니저의 인스펙터를 엽니다.
여러 씬이 열려 있는 경우, 에디터는 **활성화된 씬(Active Scene)**에 있는 매니저를 타겟팅합니다. 연결을 업데이트하려면 해당 씬을 활성화하십시오.
데이터베이스 선택기 (Database Selector)
작업에 집중할 수 있도록 서로 다른 이벤트 데이터베이스 간을 전환합니다.

드롭다운 목록에는 **게임 이벤트 매니저**에서 Active로 표시된 데이터베이스만 나타납니다. 데이터베이스가 보이지 않는다면 매니저 인스펙터에서 활성화 상태를 확인하십시오.
🛠️ 툴바 및 표시 모드
대규모 이벤트 라이브러리를 관리하기 위한 강력한 필터링 및 뷰 제어 기능을 제공합니다.
표시 모드 (View Modes)
두 가지 표시 전략을 전환할 수 있습니다.
| 모드 | 아이콘 | 용도 | 동작 |
|---|---|---|---|
| 페이지 모드 | 1 / 5 | 대규모 데이터베이스 (이벤트 100개 이상) | 이벤트를 페이지 단위로 표시 (페이지당 10~100개) |
| 전체 모드 | 그리드 아이콘 | 소규모 데이터베이스 또는 일괄 작업 | 모든 이벤트를 하나의 스크롤 가능한 목록으로 표시 |
모드 전환:
- 툴바의 그리드 아이콘을 클릭합니다.
- 설정값은 세션 간에 저장됩니다.
페이지 크기 옵션: 페이지당 10, 20, 50, 100개의 이벤트 표시 (숫자를 클릭하여 변경)
🧩 스마트 필터링 시스템
필요한 이벤트를 정확히 찾기 위한 세 단계 필터링입니다.
- 1️⃣ 카테고리 필터
- 2️⃣ 타입 필터
- 3️⃣ 검색 바
카테고리 매칭
특정 카테고리에 속한 이벤트만 표시합니다.
사용법
- Category: All ➔ 🟦 모든 이벤트 표시
- Category: Combat ➔ 🟥 전투 관련 이벤트만 표시 (Damage, Death, Spawn 등)
- Category: UI ➔ 🟩 UI 관련 이벤트만 표시 (Click, Hover, Open 등)
카테고리는 목록에서 편집 가능한 이벤트의 Category 필드에 정의됩니다.
시그니처 매칭
기반이 되는 C# 파라미터 타입별로 이벤트를 필터링합니다.
사용법
- Type: All ➔ ⚪ 모든 시그니처 타입 표시
- Type: void ➔ 🔘 인자 없는 이벤트만 표시
- Type: Int32 ➔ 🔢
GameEvent<int>타입만 표시 - Type: GameObject ➔ 📦 GameObject 참조 이벤트만 표시
드롭다운 목록은 현재 데이터베이스에 존재하는 이벤트들에 따라 자동으로 채워집니다.
유사 검색 (Fuzzy search)
이벤트 이름으로 고성능 실시간 필터링을 수행합니다.
사용법
- ⌨️ 검색: damage ➔ 🔍 해당 문자열을 포함하는 모든 이벤트 표시 (대소문자 구분 없음)
- ⚡
OnDamageTaken - ⚡
OnDamageDealt - ⚡
ApplyDamageMultiplier
- ⚡
기능
- 🚀 즉시 필터링 — 입력하는 즉시 결과가 업데이트됩니다.
- 🔡 대소문자 무관 — DAMAGE, Damage, damage 모두 동일한 결과를 반환합니다.
- 🧩 부분 일치 — 이름의 어느 부분(접두사, 접미사, 중간)이든 일치하면 표시합니다.
바 우측의 × 버튼을 클릭하거나 Esc 키를 눌러 뷰를 리셋할 수 있습니다.
🔀 다중 레이어 필터링 (조합)
세 가지 필터는 AND 로직으로 함께 작동하여 가장 구체적인 결과를 찾을 수 있도록 돕습니다.
예시 시나리오 특정 체력 관련 전투 이벤트를 찾으려면 다음과 같이 설정할 수 있습니다:
🟦 Category: Combat ➕ 🔢 Type: Int32 ➕ ⌨️ Search: damage
🎯 결과:
🔍 카테고리가 Combat이고, 타입이 Integer이며, 이름에 "damage"가 포함된 이벤트만 표시됩니다 (예: OnDamageTaken).
🧹 빠른 리셋
처음부터 다시 시작해야 하나요? 전체 목록으로 즉시 돌아갈 수 있습니다.
- 방법: 카테고리와 타입을 All로 설정하고 검색 바를 비웁니다.
- 단축키: 검색 바의 × 버튼을 누르고 드롭다운에서 "All"을 선택하면 즉시 전체 뷰가 복원됩니다.
시스템은 서로 다른 데이터베이스 탭 사이를 이동할 때도 필터 설정을 기억하여 원활한 워크플로우를 보장합니다.
📝 이벤트 목록
각 행은 편집 가능한 속성과 액션 버튼을 가진 하나의 이벤트 에셋을 나타냅니다.
편집 가능한 필드
- 1️⃣ 카테고리 필드
- 2️⃣ 이름 필드
이름 필드
이벤트 에셋의 이름을 변경합니다.
주요 기능: 🔒 GUID 보호 이름 변경
파일 이름 변경:
이벤트 이름을 변경하면 .asset 파일 이름도 일치하도록 자동으로 변경됩니다:
변경 전: OnPlayerDied.asset
변경 후: OnCharacterDeath.asset
유니티의 GUID 시스템 덕분에 참조가 깨질 걱정 없이 자유롭게 이름을 바꿀 수 있습니다! 이는 시스템의 가장 강력한 기능 중 하나입니다. 다만, 미래의 혼란을 방지하기 위해 동일한 데이터베이스 내에서 같은 이름을 가진 이벤트를 정의하지 않는 것이 좋습니다.
액션 버튼
행마다 위치한 4개의 버튼을 통해 관련 도구에 빠르게 접근할 수 있습니다.
📄 참조 필드 (읽기 전용)
전체 타입 시그니처와 함께 실제 이벤트 에셋을 보여줍니다.
액션:
- 클릭: 프로젝트 창에서 해당 에셋을 선택하고 강조(Ping)합니다.
- 우클릭: 다음 옵션이 포함된 컨텍스트 메뉴를 엽니다:
- GUID 복사
- 이름 복사
- 프로젝트에서 찾기 (Ping)
- 에셋 열기
🎯 비헤이비어 버튼 (색상 표시)
고급 이벤트 동작(액션, 조건, 지연, 반복, 루프 및 지속성)을 설정합니다.
버튼 상태:
| 색상 | 아이콘 | 의미 | 툴팁 |
|---|---|---|---|
| 🟢 녹색 | ✓ | 설정됨 (인스펙터) | 인스펙터 바인딩이 존재함 |
| 🔵 파란색 | ▶ | 설정됨 (런타임) | 런타임 리스너가 존재함 |
| 🟡 주황색 | ⚠ | 설정되지 않음 | 아직 바인딩이 없음 |
전체 이벤트 비헤이비어 설정에 대해 알아보려면 **게임 이벤트 비헤이비어 창**을 확인하십시오.
🔍 레퍼런스 파인더
현재 씬에서 이 이벤트가 어디에 사용되고 있는지 찾습니다.
사용 사례: 이벤트를 삭제하기 전에, 사용 중인 곳이 있는지 확인하십시오.
강력한 씬 참조 검색 기능에 대해 자세히 알아보려면 **게임 이벤트 레퍼런스 창**으로 이동하십시오.
🗑️ 삭제 버튼
데이터베이스에서 이벤트 에셋을 제거합니다.
동작:
- 휴지통 아이콘 클릭
- 확인 대화 상자 표시
- 이벤트 상세 정보(이름, 타입, 카테고리) 확인
- 확인 ➔ 이벤트 영구 삭제
삭제되는 항목:
- ✅ 이벤트 에셋 (
.asset파일) - ✅ 데이터베이스 내 하위 에셋 항목
- ✅ 매니저에 등록된 관련 바인딩
영향 범위:
- ❌ 씬은 깨지지 않습니다 (참조는
Missing상태가 됨). - ❌ 스크립트 에러는 발생하지 않습니다 (null 체크가 되어 있어야 함).
삭제는 영구적입니다. 삭제 전 반드시 레퍼런스 파인더를 사용하여 사용 처리를 확인하십시오.
⚡ 글로벌 액션 (우측 상단 툴바)
관련 워크플로우에 빠르게 접근합니다.
🕸️ 플로우 그래프 (Flow Graph)
시각적 이벤트 체인과 오케스트레이션 로직을 구축합니다.
버튼: "Flow Graph"
연결 페이지: 게임 이벤트 플로우 에디터
사용 시기:
- 이벤트 A가 이벤트 B, C, D를 트리거해야 할 때
- 지연 시간을 포함한 순차적 실행이 필요할 때
- 복잡한 조건부 분기를 구축할 때
➕ 새 이벤트 (New Event)
여러 이벤트를 한 번에 일괄 생성합니다.
버튼: "New Event"
연결 페이지: 게임 이벤트 생성기
사용 시기:
- 동일하거나 서로 다른 타입의 많은 이벤트를 생성할 때
- 커스텀 타입으로부터 이벤트를 생성할 때
- 대량 이벤트 생성 워크플로우가 필요할 때
🗑️ 이벤트 삭제 (일괄 모드)
대규모 데이터베이스를 효율적으로 유지관리하기 위해 에디터는 전용 일괄 삭제 모드를 지원합니다.
일괄 모드 진입
표준 툴바의 맨 오른쪽에 있는 Delete Event 버튼(아래 이미지 참조)을 클릭하여 선택 인터페이스를 토글합니다.

선택 컨트롤
버튼을 클릭하면 툴바가 일괄 작업을 제공하도록 변하며, 각 이벤트 행 옆에 선택 체크박스가 나타납니다.

| 액션 | 설명 |
|---|---|
| Select All | 목록에 현재 표시된 모든 이벤트를 체크합니다 (활성 필터 적용 상태 유지). |
| Delete | 영구 삭제를 위해 선택된 모든 이벤트 목록을 보여주는 최종 확인 대화 상자를 엽니다. |
| Cancel | 일괄 모드를 종료하고 변경 사항 없이 모든 현재 선택을 해제합니다. |
워크플로우 단계:
- Delete Event를 클릭하여 선택 모드로 진입합니다.
- 특정 이벤트를 수동으로 체크하거나 Select All을 사용합니다.
- Delete를 클릭하여 제거를 진행하거나, Cancel을 눌러 표준 뷰로 돌아갑니다.
- 되돌리기 불가: 일괄 삭제는 취소할 수 없습니다.
- 필터 영향: "Select All"은 현재 필터 기준(카테고리/타입/검색)을 충족하는 이벤트에만 영향을 미칩니다.
- 정렬 비활성화: 일괄 모드 중에는 실수로 행을 옮기는 것을 방지하기 위해 드래그 앤 드롭 정렬 핸들(☰)이 숨겨집니다.
🎨 행 순서 변경 (드래그 앤 드롭)
행을 드래그하여 이벤트 순서를 변경할 수 있습니다.
정렬 방법:
- 행 왼쪽에 있는 핸들 아이콘(☰) 위에 마우스를 올립니다.
- 클릭한 채로 수직으로 드래그합니다.
- 원하는 위치에서 놓습니다.
활성화 조건:
- ✅ 활성 필터가 없는 경우 (Category: All, Type: All, 검색어 비어 있음)
- ✅ 일괄 삭제 모드가 아닌 경우
비활성화 조건:
- ❌ 필터가 하나라도 활성화된 경우 (시각적 연속성을 해칠 수 있음)
- ❌ 일괄 삭제 모드가 활성화된 경우
순서가 중요한 이유: 이벤트 순서는 다음 사항에 영향을 미칩니다:
- 드롭다운 메뉴에서의 표시 순서
- 일부 도구에서의 알파벳순 그룹화
- 개인적인 정리 선호도
각 데이터베이스는 고유한 이벤트 순서를 가집니다. 데이터베이스를 전환해도 개별 순서는 유지됩니다.
📊 통계 배지 (Statistics Badge)
헤더에 위치하며, 실시간 이벤트 수를 보여줍니다.
표시 예시: 150 Events
카운트 대상:
- 현재 선택된 데이터베이스의 전체 이벤트 수
- 이벤트 생성/삭제 시 즉시 업데이트됨
- 필터가 활성화된 경우 필터링된 결과 수를 반영함
❓ 문제 해결
이 섹션은 일반적인 문제와 그 해결 방법을 다룹니다. 여기에 나열되지 않은 문제가 발생하면 콘솔의 에러 로그를 확인하십시오.
1. 이벤트가 나타나지 않음
문제: 이벤트를 생성했지만 목록에 보이지 않습니다.
활성 데이터베이스 확인
- Database 드롭다운 메뉴를 확인합니다.
- 올바른 데이터베이스가 선택되었는지 확인합니다.
- 목록을 새로고침하기 위해 데이터베이스를 전환해 봅니다.
필터 확인
- Category를
All로 설정합니다. - Type을
All로 설정합니다. - 검색 바를 비웁니다.
- 필터 리셋 후 이벤트가 나타나는지 확인합니다.
매니저 상태 확인
- Manager 필드 클릭 -> Ping Inspector.
- 데이터베이스가 Active(녹색 배지) 상태인지 확인합니다.
- Inactive 상태라면 스위치를 Active로 토글합니다.
위의 확인 사항이 모두 정상임에도 보이지 않는다면, 아무 코드나 수정하여 유니티 컴파일을 트리거해 보십시오. 컴파일 후 데이터베이스 상태가 업데이트됩니다. 그 후 에디터 창에서 생성된 이벤트가 나타나는지 다시 확인하십시오.
여전히 생성할 수 없는 경우 개발자에게 문의해 주십시오.
2. 이벤트 속성 편집 불가
문제: Category나 Name 필드가 회색으로 표시되어 편집할 수 없습니다.
잠재적 원인: 이벤트가 **잠긴 에셋(locked asset)**의 일부이거나, 데이터베이스 파일이 읽기 전용으로 설정되어 있을 수 있습니다.
해결 방법:
- 프로젝트의 데이터베이스 파일이 쓰기 가능한지 확인하십시오 (OS에서 읽기 전용 여부 확인).
- 현재 **프리팹 격리 모드(Prefab Isolation Mode)**가 아닌지 확인하십시오.
- 버전 관리 시스템(예: Perforce 또는 Git LFS)에서 이벤트 에셋이 잠겨 있거나 체크아웃되지 않았는지 확인하십시오.
3. 순서 변경이 작동하지 않음
문제: 행을 드래그하여 이벤트 순서를 바꿀 수 없습니다.
체크리스트: 드래그 앤 드롭 정렬을 사용하려면 다음 조건을 충족해야 합니다:
- 모든 필터(카테고리/타입)가 **"All"**로 설정되어 있습니까?
- 검색 바가 비어 있습니까?
- 일괄 삭제 모드가 아닌 상태입니까?
순서 변경은 필터링 되지 않은 전체 목록 보기 모드에서만 가능합니다.
4. 비헤이비어 버튼이 열리지 않음
문제: 비헤이비어 버튼을 클릭해도 아무런 동작이 일어나지 않습니다.
매니저 할당 확인
Manager 필드가 None인 경우:
- 일반적으로 자동 감지(Auto-detect) 시스템이 찾아냅니다.
- 감지에 실패하면 씬에서 매니저 오브젝트를 필드로 직접 드래그하십시오.
콘솔 에러 확인
- Console 윈도우를 엽니다 (
Ctrl+Shift+C). - 빨간색 에러(예외)가 있는지 확인합니다.
- 스크립트 에러가 UI 이벤트를 차단할 수 있으므로, 컴파일 문제를 먼저 해결하십시오.
이 창을 인스펙터 옆에 탭으로 고정해 두십시오. 목록에서 이벤트를 선택하면 인스펙터에 전체 에셋 상세 정보가 표시되므로, 작업 공간을 벗어나지 않고도 속성을 빠르게 확인할 수 있습니다.