본문으로 건너뛰기
Unreal Engine 모듈 · 플러그인 개발LESSON 18

Editor 플러그인 만들기

난이도심화
예상 시간105분
선수지식17강의 Runtime Plugin 기준선

18강. Editor 플러그인 만들기

1. 이번 강의에서 해결할 문제​

Editor 메뉴와 에셋 검사를 게임 Module에 추가하면 Runtime Build가 Editor API를 끌어옵니다. 별도 Editor Plugin을 만들더라도 Descriptor Type, Build.cs와 Module 수명을 정확히 구성하지 않으면 Editor 시작 시 Missing Module 또는 Shutdown 크래시가 발생합니다.

2. 학습 목표​

3. 핵심 개념​

Editor Plugin도 일반 Plugin과 같은 Descriptor·Module 구조를 사용하지만 Module Type이 Editor이고 의존성에 UnrealEd, ToolMenus, Slate, DataValidation 등이 포함될 수 있습니다. Runtime Plugin과 분리하면 DataGuard가 없어도 게임 실행 계약이 유지됩니다.

4. 단계별 실습​

Plugins/DataGuard/
├─ DataGuard.uplugin
└─ Source/DataGuardEditor/
├─ DataGuardEditor.Build.cs
└─ Private/DataGuardEditorModule.cpp
DataGuardEditor.Build.cs
using UnrealBuildTool;

public class DataGuardEditor : ModuleRules
{
public DataGuardEditor(ReadOnlyTargetRules Target) : base(Target)
{
PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs;
PrivateDependencyModuleNames.AddRange(new[]
{
"Core", "CoreUObject", "Engine", "UnrealEd",
"ToolMenus", "Slate", "SlateCore"
});
}
}
Private/DataGuardEditorModule.cpp
#include "Modules/ModuleManager.h"

DEFINE_LOG_CATEGORY_STATIC(LogDataGuardEditor, Log, All);

class FDataGuardEditorModule final : public IModuleInterface
{
public:
virtual void StartupModule() override
{
UE_LOG(LogDataGuardEditor, Display, TEXT("DataGuardEditor started"));
}

virtual void ShutdownModule() override
{
UE_LOG(LogDataGuardEditor, Display, TEXT("DataGuardEditor stopped"));
}
};

IMPLEMENT_MODULE(FDataGuardEditorModule, DataGuardEditor)

Editor Target을 빌드하고 Plugin 활성화 뒤 Startup을 확인합니다. Development Game Target 빌드 로그에는 DataGuardEditor가 컴파일·링크 대상이 아니어야 합니다. Editor를 닫을 때 Shutdown 로그가 남는지도 확인합니다.

5. 코드가 동작하는 이유​

Descriptor의 Editor Type이 현재 Target과 맞을 때만 Module이 로드됩니다. Editor 전용 의존성은 DataGuardEditor 내부 Private 환경에서 끝나고 Runtime Module 그래프로 전파되지 않습니다.

6. 자주 하는 실수와 해결법​

7. 직접 실습​

8. 이해 점검 질문 3개​

9. 핵심 요약​

MINI QUIZ

Editor 플러그인 만들기 미니 퀴즈

선택 즉시 정답과 해설을 확인할 수 있습니다. 결과는 이 브라우저에만 저장됩니다.

0 / 2
  1. 문제 1“Editor 플러그인 만들기” 내용을 실제 작업에 적용한 설명으로 가장 알맞은 것은 무엇인가요?
  2. 문제 2‘Game Target에 DataGuardEditor 추가’ 실수를 판단할 때 “Editor 플러그인 만들기” 강의가 제시한 기준은 무엇인가요?
LESSON STATUS

학습을 마쳤나요?

직접 실습과 점검 질문까지 확인한 뒤 완료로 표시하세요.

18강. Editor 플러그인 만들기 미완료 상태