【UE4】에디터용 모듈을 만들 때까지 【UnrealEngine】【Module】

2310 단어 C++UnrealEngine위 4

개요



UE4로 앱을 패키징 할 때
실제 앱에서는 사용하지 않는 편집기용 코드를 패키지에 넣고 싶지 않을 때가 있습니다.
이 문제를 해결하는 방법으로 이번에는 모듈을 분할하는 방법을 소개합니다.

1. 에디터용 모듈 만들기



새 모듈의 폴더를 원래의 모듈의 폴더를 복사하여 Source 바로 아래에 만듭니다.
이번에는 모듈명을 MyProjectEd로 하고 있습니다.


만든 폴더에 최소한 필요한 코드 MyProjectEd.Build.cs MyProjectEd.cpp MyProjectEd.h 를 준비합니다
파일의 내용도 모두 새로운 모듈명으로 리네임을 실시합니다.
(기본적으로 존재하는 모듈에서 복사하여 이름을 바꾸는 것이 안전합니다)


2. 만든 모듈을 빌드 대상으로 한다



에디터만 추가하고 싶은 모듈의 경우 〇〇Editor.Target.cs가
에디터 기동시용이므로 여기에 만든 에디터만 사용하고 싶은 모듈명을 추가
MyProjectEditorTarget.cs
public class MyProjectEditorTarget : TargetRules
{
        public MyProjectEditorTarget(TargetInfo Target) : base(Target)
        {
        Type = TargetType.Editor;

        ExtraModuleNames.AddRange( new string[] { "MyProject" , "MyProjectEd" } );
    }
}

3. 마지막으로 Generate VisualStudio project files 실행



MyProject.uproject의 오른쪽 클릭 메뉴에서 Generate VisualStudio project files를 실행하고 빌드하면 완성



조심하고 싶은 일



편집기용 모듈에서 런타임용 모듈을 사용하려면
편집기용 Build.cs의 Dependency에서 참조할 대상 모듈을 지정해야 합니다.
※이것을 하지 않으면 에디터용의 소스로부터 패키지용의 소스를 인클루드 했을 때 에러가 나옵니다.


요약



에디터 확장에 필요한 UnrealEd를 Runtime용 모듈에 포함시키면 패키지를 만들 수 없는 문제가 발생하기 때문에,
에디터 확장을 할 경우에는 필요할 것 같습니다.

참고로 한 사이트



모듈 정보
새로운 편집기 모듈 만들기

좋은 웹페이지 즐겨찾기