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++特定),即可成功。

相关推荐
weixin_404679312 天前
虚幻5电子书
ue5
directx3d_beginner2 天前
5,动画蓝图类接口转c++
ue5
RuiZN3 天前
UE5 蓝图 FPS 02 Event Beginplay
c++·ue5
RuiZN3 天前
UE5 蓝图 FPS 01 Event Tick
c++·ue5
directx3d_beginner3 天前
6,执行攻击改为c++
ue5
平行云3 天前
实时云渲染预启动技术解析:UE数字孪生应用的延迟优化机制(二)
linux·unity·ue5·webgl·实时云渲染·云桌面·像素流
RuiZN4 天前
UE5 UObject类详解
c++·ue5
平行云4 天前
实时云渲染预启动技术解析:UE数字孪生应用的延迟优化机制(一)
linux·ue5·webgl·数字孪生·云渲染·实时云渲染·像素流
RuiZN4 天前
UE5 UObject和反射
c++·ue5
远离UE45 天前
UE5 如何在延时渲染在材质编辑器提前使用到多灯光的数据
ue5·编辑器·材质