모듈의 제작 규칙
1. 모듈의 이름과 동일한 폴더
2. 모듈의 빌드 규칙 파일 : 모듈이름.Build.cs
3. 프리컴파일드 헤더와 소스파일 : 모듈이름.h , 모듈이름.cpp
과정:
Characters 모듈 추가
1.
Characters
폴더생성-> 폴더명과 같은 cpp 와 h, build.cs 파일 생성
1-1. h에 아래와 같이 코드 추가
1
2
3
4
5
|
// Fill out your copyright notice in the Description page of Project Settings.
#pragma once
#include "Engine.h"
|
cs |
1-2. cpp에 아래와 같이 추가
1
2
3
|
#include "Characters.h"
IMPLEMENT_MODULE(FDefaultModuleImpl, Characters);
|
cs |
1-3 Build.cs에 코드 추가
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
// Fill out your copyright notice in the Description page of Project Settings.
using UnrealBuildTool;
public class Characters : ModuleRules
{
public Characters(ReadOnlyTargetRules Target) : base(Target)
{
PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs;
PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine" });
PrivateDependencyModuleNames.AddRange(new string[] { });
// Uncomment if you are using Slate UI
// PrivateDependencyModuleNames.AddRange(new string[] { "Slate", "SlateCore" });
// Uncomment if you are using online features
// PrivateDependencyModuleNames.Add("OnlineSubsystem");
// To include OnlineSubsystemSteam, add it to the plugins section in your uproject file with the Enabled attribute set to true
}
}
|
cs |
2. 프로젝트 target.cs파일 과 프로젝트Editor.target.cs파일 두곳에 모듈을 추가해 준다.
(여기서 엔진 버젼마다 조금씩 다를 수 있다.)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
// Fill out your copyright notice in the Description page of Project Settings.
using UnrealBuildTool;
using System.Collections.Generic;
public class ArenaBattleTarget : TargetRules
{
public ArenaBattleTarget(TargetInfo Target) : base(Target)
{
Type = TargetType.Game;
ExtraModuleNames.AddRange( new string[] { "ArenaBattle", "WebService","Characters" } );
}
}
|
cs |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
// Fill out your copyright notice in the Description page of Project Settings.
using UnrealBuildTool;
using System.Collections.Generic;
public class ArenaBattleEditorTarget : TargetRules
{
public ArenaBattleEditorTarget(TargetInfo Target) : base(Target)
{
Type = TargetType.Editor;
ExtraModuleNames.AddRange( new string[] { "ArenaBattle", "WebService", "Characters" } );
}
}
|
cs |
3. uproject 파일을 메모장으로 열어 Name과 Type를 추가해 주자.
4. 비쥬얼 스튜디오에서 솔루션 빌드 이후에 uproject파일을 우클릭하여 "Generate Visual Studio {roject Files"을 실행하자.
5. Visual Studio에서는 추가되어있다. 하지만
6. 엔진에서는 아직 추가되어있지 않다. 여기서 새로만든 모듈에 C++ 클래스를 새로 추가하면 모듈이 보일것이다.
그리고 Visual Studio를 닫고 클래스 생성을 할 경우 성공 할수도 있지만 실패 메세지가 뜨기도 한다.
메세지를 닫고 솔루션 빌드를 다시 한다.
(만약 저장 메세지가 뜨면 덮어쓰기를 한다.)
7. 이제 에디터를 다시 실행하면(리빌드를 하기도 한다) 만들었던 파일이 추가되어있다.
*추가: UE4 엔진에 있는 C++ 정리 방식으로 정리해 둔다.
'Unreal Engine4 or 5 > 코드' 카테고리의 다른 글
UE4] Blueprint의 노출되는 함수. (0) | 2017.07.19 |
---|---|
UE4 C++코드로 디폴트에 Mesh 불러오는법 (0) | 2016.05.04 |
UE4 게임플레이 타이머 * 코루틴(?) (0) | 2016.04.26 |
언리얼 C++ 튜토리얼 003.CountDown Timer (0) | 2016.04.25 |
UE4 C++ 비주얼 스튜디오 에서 BreakPoint 사용하는법 (0) | 2016.04.25 |