UE4.25 创建自定义模块Module

最近在看《大象无形》,遇到的第一个Coding问题就是创建自定义的模块Module,众所周知由于版本问题,UE的一些路径已经改变了,因此,本篇就梳理出亲测有效的创建自定义模块步骤——基于4.25版本。

1.创建一个UE的项目,记得选择为C++(当然后边也可以改),我这里命名为ModuleTest。

2.找到项目存放路径下的Source文件夹,如下图,在ModuleTest同级目录下新建MyModule文件下

 注意MyModule下的文件及结构如下安排

MyModule
    --Public
        --FMyModule.h
    --Private
        --FMyModule.cpp
        --FMyModulePrivatePCH.h
    --MyModule.Build.cs

3.在VS中以添加筛选器的方式创建MyModule文件夹及其子文件夹结构,并使用添加现有项方式将.cpp与.h文件添加到对应结构上:

4.Coding

FMyModule.h

#pragma once
#include "Modules/ModuleManager.h"//注意老版本的直接#include "ModuleManager.h"

class FMyModule:public IModuleInterface
{
	virtual void StartupModule() override;
	virtual void ShutdownModule() override;

};

FMyModule.cpp

#include "..\Public\FMyModule.h"
#include "FMyModulePrivatePCH.h"

IMPLEMENT_MODULE(FMyModule, MyModule);
void FMyModule::StartupModule()
{

}

void FMyModule::ShutdownModule()
{

}

MyModule.Build.cs

using UnrealBuildTool;

public class MyModule : ModuleRules
{
    public MyModule(ReadOnlyTargetRules Target) : base(Target)
    {
        PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore" });
        PublicIncludePaths.AddRange(new string[] { "MyModule/Public" });
        PrivateIncludePaths.AddRange(new string[] { "MyModule/Private" });
    }
}

项目名.Target.cs(ModuleTest.Target.cs)添加Module

// Copyright Epic Games, Inc. All Rights Reserved.

using UnrealBuildTool;
using System.Collections.Generic;

public class ModuleTestTarget : TargetRules
{
	public ModuleTestTarget( TargetInfo Target) : base(Target)
	{
		Type = TargetType.Game;
		DefaultBuildSettings = BuildSettingsVersion.V2;
		ExtraModuleNames.AddRange( new string[] { "ModuleTest","MyModule" } );//添加Module
	}
}

项目名Editor.Target.cs(ModuleEditorTest.Target.cs)添加Module

// Copyright Epic Games, Inc. All Rights Reserved.

using UnrealBuildTool;
using System.Collections.Generic;

public class ModuleTestEditorTarget : TargetRules
{
	public ModuleTestEditorTarget( TargetInfo Target) : base(Target)
	{
		Type = TargetType.Editor;
		DefaultBuildSettings = BuildSettingsVersion.V2;
		ExtraModuleNames.AddRange( new string[] { "ModuleTest" ,"MyModule"} );//添加Module
	}
}

FMyModulePrivatePCH.h可以为空。

5.关闭UE,在VS中进行编译(不通过的时候多检查出错,并进行清理,重新生成,甚至关闭VS,使用UE项目右键Generate)。

猜你喜欢

转载自blog.csdn.net/weixin_44212242/article/details/125819880