Editor 전용 모듈 생성

 

Editor 전용 모듈 생성

에디터 내부에서 사용할 전용 모듈을 생성 합니다.

  • 에디터 코드 수정이 필요하지만, 엔진 코드 수정을 하고 싶지 않은 경우 사용

모듈 생성

Editor전용 모듈을 만든다.

  • 이미 만들어진 경우 생략

모듈 폴더 구성

{ProjectDir}\Source에 해당 모듈의 폴더를 생성

image.png

TestEditor생성

폴더 구조

TestEditor/
── TestEditor.Build.cs
── Private/
   ── TestEditor.cpp
   ── TestEditor.h
  1. 빌드 타겟 설정에서 포함될 모듈 이름 추가

    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추가.
  2. .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"
     		}
     	]
     }
    
  3. 모듈 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;
     };
    
  4. 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");
         }
     }
    

GitHub Code