UE4中的GamePlay模块

链接
该文档主要通过学习自己构建文件,形成GamePlay模块。下图是利用引擎创建的一个空模板C++代码结构
image
简要流程
image

UBT

虚幻编译工具(UBT:Unreal Build Tool)是一个自定义工具,负责管理通过各种编译配置来编译虚幻引擎4(UE4)源代码的过程。该工具处理所有复杂的项目编译工作,编译UE4的逐个模块并处理依赖等。我们编写的Target.cs,Build.cs都是为这个工具服务的。 并将项目与引擎关联起来。该过程以透明方式进行,只需通过标准的Visual Studio 构建工作流程构建项目即可。
在项目的目录查找依赖性时,会忽略IDE解决方案文件,而是去查找Build.cs文件,如果没有该文件就不会被UBT发现,进而不会被编译。

创建项目

在Source文件夹下创建一个新的文件夹,该文件夹为一个新的GamePlay模块,在该文件夹下添加Name.Bulid.cs文件。
image

using UnrealBuildTool;
public class NewGamePlayMo: ModuleRules
{
    public NewGamePlayMo(ReadOnlyTargetRules Tartget): base(Tartget) 
    { 
        //模块依赖函数,比如之后的AIModule也需要在Build.cs文件中添加,这样才能编译AI
        PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore" });
    }
}

创建[Name]Module的cpp文件,使得引擎可以进行卸载和加载

//NewGamePlayMoModule.cpp
#include "Modules/ModuleManager.h"
IMPLEMENT_PRIMARY_GAME_MODULE(FDefaultGameModuleImpl, NewGamePlayMo,"NewGamePlayMo");

这段代码为模块提供了默认实现。但是,对于大部分Gameplay模块,此默认实现对于加载和卸载你的模块是足够的。
可以手动编写该模块的类、其构造函数以及启动和关闭函数,创建更详细的实现。即该文件决定了这个模块下的类的实现方式

编译模块

右键.uproject文件,generate visual studio files重新生成IDE解决方案。使得新添加的GamePlay模块可见

注册模块

为了使能够在项目中使用我们自己新建的GamePlay模块,需要在.uproject文件中注册模块

//CreateModule.uproject
{
	"FileVersion": 3,
	"EngineAssociation": "4.27",
	"Category": "",
	"Description": "",
	"Modules": [
		{
			"Name": "CreateMoudle",
			"Type": "Runtime",
			"LoadingPhase": "Default"
		},
		{
			"Name": "NewGamePlayMo",
			"Type": "Runtime"
		}
	]
}

可以使用此列表条目来配置它将在哪个 加载阶段(Loading Phase)中加载,以及其类型(Type)
接下来需要将新建的模块添加到UE自己创建的Bulid.cs文件中

//CreateModule.Build.cs
PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore", "NewGamePlayMo" });

编译运行后,创建C++类就可以选择在NewGamePlayMo模块下建立,表现为cpp和h文件出现在NewGamePlayMo文件夹中。
image
image

作者:XTG111

出处:https://www.cnblogs.com/XTG111/p/17809251.html

版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。

posted @   XTG111  阅读(52)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
more_horiz
keyboard_arrow_up light_mode palette
选择主题
点击右上角即可分享
微信分享提示