Unreal模块创建流程
可以把开发中通用的功能封装成模块,以在不同项目之间复用,这里记录一下创建模块的步骤:
- 在工程的Source文件夹中新建文件夹,命名为模块名称TestCustomModule:
- 如果要区分模块内脚本的公私有权限,则在模块文件夹内创建Public和Private文件夹,这里我没有区分,就不创建了:
- 在模块文件夹中创建"模块名.Build.cs"构建脚本,内容如下:
using UnrealBuildTool;
public class TestCustomModule : ModuleRules
{
public TestCustomModule(ReadOnlyTargetRules Target) : base(Target)
{
PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs;
PublicDependencyModuleNames.AddRange(new string[] {"Core", "CoreUObject", "Engine"});
PrivateDependencyModuleNames.AddRange(new string[] {});
// PublicIncludePaths.AddRange(new string[] {"HelloModule/Public"});
// PrivateIncludePaths.AddRange(new string[] {"HelloModule/Private"});
}
}
如果不区分公私有权限,则PublicIncludePaths和PrivateIcludePaths可以注销.
- 创建"模块名.h"和"模块名.cpp":
#pragma once
#include "CoreMinimal.h"
#include "Modules/ModuleInterface.h"
class PrintModule:public IModuleInterface
{
protected:
virtual void StartupModule() override;
virtual void ShutdownModule() override;
};
#include "TestCustomModule.h"
void TestCustomModule::StartupModule () {
}
void TestCustomModule::ShutdownModule () {
}
IMPLEMENT_MODULE(TestCustomModule, TestCustomModule);
这里实现两个函数,分别是模块启用和结束时的回调。IMPLEMENT_MODULE传入模块名。
- 在工程的Target.cs和Editor.Target.cs脚本中引入模块:
- 在工程的uproject中引入模块:
- 重新生成Solution:
- 编译Solution:
- 在工程的build脚本中引入我们的自定义模块:
- 这样我们就能在虚幻中使用我们的自定义模块了,真是方便快捷!