UnrealEngine Console 使用和原理浅析

Viewed 9

首发地址:UnrealEngine Console 使用和原理浅析

说明

对 UnrealEngine(以下简称 UE) Console 的作用、使用方法和执行流程进行简单说明和记录。

作用

来源于 ChatGPT

  • UE Console Commands 是指在 Unreal Engine(虚幻引擎)中使用的控制台命令。它们可以用于调试游戏、测试场景、修改游戏设置等方面。通过控制台命令,开发人员可以更快地进行调试和测试,从而提高开发效率。
  • 常见的UE控制台命令包括 BugItGo 、ToggleDebugCamera、ShowCollision、SetGravity、God、Fly、SetTimeOfDay、Ghost、Slomo、SetFOV 和 Quit 等。这些命令可以通过在游戏中按 ~ 键打开控制台来执行。

如何自定义 Console 指令

主要有2种方式来自定义自己的 Console 指令

  1. IConsoleManager::Get().RegisterConsoleCommand
  2. 给 UFUNCTION 添加 Exec 。

具体都是在 UConsole::ConsoleCommand 中执行。

RegisterConsoleCommand

说明

  • Console 保存在 FConsoleManager 的 ConsoleObjects 中,通过 UEngine::Exec 来调用。

例子

参见 FShaderCompileJobCollection::FShaderCompileJobCollection

LogJobsCacheStatsCmd = IConsoleManager::Get().RegisterConsoleCommand(
		TEXT("r.ShaderCompiler.LogCacheStats"),
		TEXT("Prints out the stats for the in-memory shader job cache."),
		FConsoleCommandDelegate::CreateRaw(this, &FShaderCompileJobCollection::HandleLogJobsCacheStats),
		ECVF_Default
	);

流程图

Exec

说明

Console 作为方法保存在反射信息中,通过 UObject::FindFunction 获取到方法最终予以 Invoke 执行。

例子

参见 UCheatManager::BugItGo

UFUNCTION(Exec)
	virtual void BugItGo(float X, float Y, float Z, float Pitch, float Yaw, float Roll);

流程图

限制

只有以下类的方法可以支持 Exec 标签:

  • APawn
  • APlayerController
  • UPlayerInput
  • UCheatManager
  • AGameMode
  • UGameInstance
  • AHUD

声明:本文来自公众号:GameDevLearning,转载请附上原文链接及本声明。

0 Answers