Bootstrap

UE4 C++(19):控制台命令

12/06/2020

IConsoleManager

在游戏中,我们可以使用tab上面的键来启动控制台命令,这些控制台可以由UFUNCTION(exec)在特定的类中声明,也可以使用IConsoleManager注册命令

//这是一个自定义Plugin
class FConsoleModule : public IModuleInterface
{
   
public:
	/** IModuleInterface implementation */
	virtual void StartupModule() override;
	virtual void ShutdownModule() override;

	FConsoleCommandWithArgsDelegate ConsoleDelegate;
	void CustomizeConsoleCommand(const TArray<FString>& Argument);
	UClass* NewActorInstance;

};

//在build.cs中的PublicDependencyModuleNames 加入Engine和CoreUObject模块
#include "Console.h"
#include <Runtime\Core\Public\HAL\IConsoleManager.h>		
#include <Runtime\Engine\Classes\Kismet\KismetSystemLibrary.h>
#include <Runtime\Engine\Classes\Engine\Engine.h>

#define LOCTEXT_NAMESPACE "FConsoleModule"

void FConsoleModule::StartupModule()
{
   

	ConsoleDelegate.BindRaw(this, &FConsoleModule::CustomizeConsoleCommand);
	IConsoleManager::Get().RegisterConsoleCommand(		//这个函数有返回值,用于C++操作
		TEXT("TestConsoleCommand"),
		TEXT("This is a Console Command"),
		ConsoleDelegate
;