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

一.Engine里用C#来配置

1.UnrealEditor.Target.cs

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

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

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值