`
阅读更多

默认情况下,使用 Shipping 配置的打包游戏根本不会记录任何内容。这对安全性非常有用。但是,当您的游戏测试人员和现场玩家遇到问题时,如果没有日志,就很难进行故障排除。

 

UE4/UE5 在Shipping 版本中默认是不会有日志的(USE_LOGGING_IN_SHIPPING = 0),要在 Shipping build 中启用日志。

 

虽然交付构建的默认设置不会打印任何平台的日志,但可以定义 USE_LOGGING_IN_SHIPPING (Source/Runtime/Core/Public/Misc/Build.h)在 UBT 中启用 bUseLoggingInShipping 来启用它来这样做。

 

执行以下过程:

 

1、必须首先下载引擎源代码,并使用源码构建引擎开发项目。没有它,它根本无法工作。这些设置会改变构建游戏和引擎二进制文件的方式。

 

2、您需要在游戏模块的 Target.cs 文件中添加一些额外的设置。

 

在 {projectname}.Target.cs 文件的 contrsuctor 中,添加以下行: bUseLoggingInShipping = true,USE_LOGGING_IN_SHIPPING = 1 完全定义了日志记录代码。 仅仅设置该项会导致构建失败。

 

还需要设置其他两个标志之一,具体取决于您是使用 UE4 的源构建还是从 Epic Games Launcher 安装。

 

如果使用源构建,添加:BuildEnvironment = TargetBuildEnvironment.Unique

 

如果使用已安装的版本,添加:bOverrideBuildEnvironment = true;

 

public class GameTarget : TargetRules
{
	public GameTarget(TargetInfo Target) : base(Target)
	{
		Type = TargetType.Game;

		// enable logs and debugging for Shipping builds
		if (Configuration == UnrealTargetConfiguration.Shipping)
		{
			BuildEnvironment = TargetBuildEnvironment.Unique;
			bUseChecksInShipping = true;
			bUseLoggingInShipping = true;
		}

		ExtraModuleNames.AddRange( new string[] { "Game" } );
	}
}

 

然后,下次在 Shipping 模式下打包时,不仅可以获得日志,而且还可以将 Visual Studio 调试器附加到 Shipping 二进制文件。

 

3、运行带有 “-log” 标志的 exe,日志会出现在命令行窗口中。

 

 UE4 会在 “\WindowsNoEditor\Example_426\Saved\Logs” 中保存运行的日志。

 UE5 会在 “C:\Users\xxx\AppData\Local\Example_500” 中保存运行的日志。

0
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics