Editor 전용 모듈 생성
에디터 내부에서 사용할 전용 모듈을 생성 합니다.
- 에디터 코드 수정이 필요하지만, 엔진 코드 수정을 하고 싶지 않은 경우 사용
모듈 생성
Editor전용 모듈을 만든다.
- 이미 만들어진 경우 생략
모듈 폴더 구성
{ProjectDir}\Source에 해당 모듈의 폴더를 생성

TestEditor생성
폴더 구조
TestEditor/
── TestEditor.Build.cs
── Private/
── TestEditor.cpp
── TestEditor.h
-
빌드 타겟 설정에서 포함될 모듈 이름 추가
Editor전용 모듈이므로 TestUnrealEngineEditor.Target.cs수정
using UnrealBuildTool; using System.Collections.Generic; public class TestUnrealEngineEditorTarget : TargetRules { public TestUnrealEngineEditorTarget( TargetInfo Target) : base(Target) { Type = TargetType.Editor; DefaultBuildSettings = BuildSettingsVersion.V2; ExtraModuleNames.AddRange(new string[] { "TestUnrealEngine", "TestEditor" }); } }TestEditor추가.
-
.uproject 파일 수정
{ "FileVersion": 3, "EngineAssociation": "{EF664932-432B-4154-4E63-A4A840DCD65E}", "Category": "", "Description": "", "Modules": [ { "Name": "TestUnrealEngine", "Type": "Runtime", "LoadingPhase": "Default", "AdditionalDependencies": [ "Engine", "UMG", "AIModule", "NavigationSystem", "GameplayTasks" ] }, { "Name": "TestEditor", "Type": "Editor", "LoadingPhase": "Default" } ] } -
모듈 h, cpp생성
TestEditor.cpp
#include "TestEditor.h" #include "Modules/ModuleManager.h" IMPLEMENT_MODULE(FTestEditor, TestEditor) void FTestEditor::StartupModule() { UE_LOG(LogTemp, Warning, TEXT("FTestEditor Startup!")); } void FTestEditor::ShutdownModule() { UE_LOG(LogTemp, Warning, TEXT("FTestEditor Shutdown!")); }TestEditor.h
#pragma once #include "Modules/ModuleManager.h" class FTestEditor : public IModuleInterface { public: virtual void StartupModule() override; virtual void ShutdownModule() override; }; -
build.cs작성
TestEditor.Build.cs
using UnrealBuildTool; public class TestEditor : ModuleRules { public TestEditor(ReadOnlyTargetRules Target) : base(Target) { PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs; PrivateDependencyModuleNames.AddRange( new string[] { "Core", "CoreUObject", "Engine", "UnrealEd" } ); PrivateIncludePaths.Add("TestEditor/Private"); } }
NEXTAsset Picker생성