ue3d使用FAutoConsoleCommand添加控制台命令

使用FAutoConsoleCommand添加控制台命令

分类:

控制台命令是虚幻UE引擎较为方便的对象,可以在编辑器和运行时轻松调用,并且在调试时很有用,那么本文将介绍如何使用 FAutoConsoleCommand 添加控制台命令。

ue3d - 使用FAutoConsoleCommand添加控制台命令

因为会添加一个控制台命令,所以尝试使用 DumpConsoleCommands 会是一个不错的选择,它也在常用命令列表中进行了介绍。

#包括 "HAL/IConsoleManager.h"

static FAutoConsoleCommand TestCommand = FAutoConsoleCommand(
	TEXT("Test.Command"),   // 名字
	TEXT("Say Hello\nSay Hello(2)\nSay Hello(3)"),   // 说明
	FConsoleCommandDelegate::CreateLambda([]()   // 执行时的处理
	{
		UE_LOG(LogTemp, Log, TEXT("Helo"));
	})
);

命令调用

调用自己的命令时,在控制台输入 FAutoConsoleCommand 的构造函数中指定的命令名。

ue3d - 使用FAutoConsoleCommand添加控制台命令

如果描述中有换行符,则在命令名称后传递问号(?)以从第二行开始输出描述。

ue3d - 使用FAutoConsoleCommand添加控制台命令

命令类型

如果希望命令具有参数,请使用 FConsoleCommandWithArgsDelegate 而不是FConsoleCommandDelegate。

但是,参数作为在控制台中键入的结果的字符串数组传递,由空格分隔,因此需要自己解释。

根据使用的委托类型,传递了一些 UWorlds 和 FOutputDevices,总结在下表中。

函数参数
FAutoConsoleCommandFConsoleCommandDelegate没有任何
FAutoConsoleCommandFConsoleCommandWithArgsDelegate常量 TArray
FAutoConsoleCommandFConsoleCommandWithWorldArgsAndOutputDeviceDelegate常量 TArray&,UWorld*,FOutputDevice&
FAutoConsoleCommandWithWorldFConsoleCommandWithWorldDelegateUWorld*
FAutoConsoleCommandWithWorldAndArgsFConsoleCommandWithWorldAndArgsDelegate常量 TArray&,UWorld*
FAutoConsoleCommandWithOutputDeviceFConsoleCommandWithOutputDeviceDelegateFOutputDevice&
请根据需要正确使用

也可以在运行时添加命令,在这种情况下,将能够将以前的源代码粘贴到任何喜欢的地方并使用它。

但是,请注意,一旦变量到期,该命令就会被删除。

查看 FAutoConsoleCommand 构造函数的源码,可以看到它使用了如下命令注册函数IConsoleManager::RegisterConsoleCommand。

IConsoleManager::Get().RegisterConsoleCommand();

父类 FAutoConsoleObject 的析构函数包含注销函数 IConsoleManager ::UnregisterConsoleObject。

相关信息

  • 类型:知识
  • 字数:345
  • 字符:1913
  • 适用软件:虚幻引擎5.0.3
  • 说明:无
  • 编号:91313

热门内容

提示:3D天堂作为服务提供者,尊重网络版权及知识产权,对某些行为的发生不具备充分的监控能力,若无意间侵犯到您的权利,请 联系我们,我们会在收到信息后尽快给予处理。

本站文章版权归本站自创作者所有,未经允许不得转载!