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