在UE5.3中创建C++模块的步骤如下:
1. 创建模块文件夹
在项目的Source目录下创建一个新文件夹,命名为你想要创建的模块名称,例如"HelloModule"。(后面这一步可不做)在这个文件夹内再创建两个子文件夹:Private和Public。
2. 创建模块构建文件
在模块文件夹中创建一个名为"HelloModule.Build.cs"的文件,这是模块的构建脚本。在该文件中定义模块的依赖关系,示例代码如下:
// Fill out your copyright notice in the Description page of Project Settings.
using UnrealBuildTool;
public class HelloModule: ModuleRules
{
public HelloModule(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
}
}
3. 创建模块头文件 HelloModule.h
在模块的文件夹中创建一个名为"HelloModule.h"的文件,用记事本或VS打开它,加入如下代码:
#pragma once
#include "CoreMinimal.h"
#include "Modules/ModuleInterface.h"
class HelloModule : public IModuleInterface
{
protected:
virtual void StartupModule() override;
virtual void ShutdownModule() override;
};
4. 创建模块cpp实现文件
在模块的文件夹中创建一个名为"HelloModule.cpp"的文件,用于实现模块的启动和关闭函数,示例代码如下:
#include "HelloModule.h"
#include "Modules/ModuleManager.h"
void HelloModule::StartupModule()
{
// 启动模块时的代码
}
void HelloModule::ShutdownModule()
{
// 关闭模块时的代码
}
IMPLEMENT_MODULE( HelloModule, HelloModule );
4. 注入模块
打开项目的".uproject"文件,在"Modules"数组中添加新模块的条目:
注意前面原来的用英文逗号隔开
"Modules": [
{
...
},
{
"Name": "HelloModule",
"Type": "Runtime",
"LoadingPhase": "Default"
}
]
6. 添加模块依赖
打开你自己项目的.Build.cs文件,在PublicDependencyModuleNames数组中添加"HelloModule"。如图:
7. 重新生成Visual Studio解决方案
在你的项目文件夹,右键点击.uproject文件,选择"Generate Visual Studio project files"。