UE5 C++ 项目C#编译目标 链接模块

一.Engine里用C#来配置

1.UnrealEditor.Target.cs

cpp 复制代码
using UnrealBuildTool;
using System.Collections.Generic;

public class UnrealEditorTarget : TargetRules
{
	public UnrealEditorTarget( TargetInfo Target ) : base(Target)
	{
		Type = TargetType.Editor;
		IncludeOrderVersion = EngineIncludeOrderVersion.Latest;
		BuildEnvironment = TargetBuildEnvironment.Shared;
		bBuildAllModules = true;
		ExtraModuleNames.Add("UnrealGame");
	}
}

Type类型设置为 Editor类型。(当前的项目为编译器服务)

Build的环境 设置为 共享。

bBuildAllModules 是否编译所有模块 是。(依赖的模块全部都编译)

额外模块 中 添加"UnrealGame",也就是把自己加入额外模块。

2.UnrealGame.Target.cs

cpp 复制代码
using UnrealBuildTool;
using System.Collections.Generic;

[SupportedPlatforms(UnrealPlatformClass.All)]
public class UnrealGameTarget : TargetRules
{
	public UnrealGameTarget( TargetInfo Target ) : base(Target)
	{
		Type = TargetType.Game;
		IncludeOrderVersion = EngineIncludeOrderVersion.Latest;
		BuildEnvironment = TargetBuildEnvironment.Shared;

		ExtraModuleNames.Add("UnrealGame");
	}
}

Type为游戏类型(默认的Game,包含独立游戏,可能服务端客户端一样。并未指明),其他同上。

二.项目里

1.项目里也会有两个.Target.cs。一个Editor模块类型,一个Game模块类型。

2.项目和插件,至少需要带有一个.Build.cs 这样一个描述模块,才能编译进去。她是描述,模块的使用规则。

模块化是使用编译好的第三方库的资源,每个模块,本质是dll,lib。比如"Core"核心模块,"InputCore"负责当前输入输出的,"HeadMountedDisplay"用于VR的模块。

三.UPROJECT启动文件

1.文件在C++里本身格式是JSON格式。它启动,实际上是将路径传到引擎里,引擎来启动项目。

2.并且JSON里的具体信息,比如模块,插件包括参数,是否开启,需要哪些其它模块等,也都会传到引擎里,进行调配。再和之前配置好的模块进行关联。

3.插件的话,需要在工程里勾选需要的插件,它会自动在UPROJECT启动文件里,添加对应的问题。在模块描述的C#里,也将相应的插件写入(C++特定),即可成功。

相关推荐
chudonghao10 小时前
[UE学习笔记][基于源码] 理解 Gameplay
c++·笔记·学习·ue5
爱搞虚幻的阿恺15 小时前
RPG游戏开发【加餐】实现游戏小地图的简单方法
游戏·ue5·游戏引擎·虚幻
平行云PVT2 天前
数字孪生信创云渲染技术解析:从混合信创到全国产化架构
linux·unity·云原生·ue5·图形渲染·webgl·gpu算力
Дерек的学习记录4 天前
Unreal Engine 5:前置知识和入门基础
学习·ue5
GentooEmacs4 天前
unreal中渲染地球 通用静态磁层场线
ue5·数字孪生·太阳系·unrealengine·太空·地球磁场
思麟呀5 天前
UE蓝图初步
ue5
吴梓穆5 天前
UE5VSC++开发 一 环境准备
ue5
电子云与长程纠缠5 天前
UE5 地形纹理高度混合
ue5
朗迹 - 张伟6 天前
UE5 C++学习笔记
c++·学习·ue5
成都渲染101云渲染66666 天前
C4D/Blender云渲染计费详解|5090显卡实测:速度对比+成本核算
3d·ue5·blender·maya·houdini