コマンドレットとは
コマンドラインから実行可能な、UE4エンジンに組み込まれたコマンドラインアプレットです。
開発中の様々な処理を、UE4エディタのパワフルな機能を用いて自動化することが可能になります。
デフォルトで多くのコマンドレットが提供されています。
UCommandlet | Unreal Engine http://api.unrealengine.com/INT/API/Runtime/Engine/Commandlets/UCommandlet/index.html
Commandlets | Unreal Engine http://api.unrealengine.com/INT/API/Editor/UnrealEd/Commandlets/index.html
コマンドレットを実装
コマンドレット名は TestCmdFunction
とします。
UCommandlet
を継承して、 int32 Main(const FString&)
をオーバーライドします。
TestCmdFunctionCommandlet.h
#pragma once
#include "CoreMinimal.h"
#include "Commandlets/Commandlet.h"
#include "TestCmdFunctionCommandlet.generated.h"
UCLASS()
class UTestCmdFunctionCommandlet : public UCommandlet
{
GENERATED_UCLASS_BODY()
public:
virtual int32 Main(const FString& CmdLineParams) override;
};
Constructor
と int32 Main(const FString&)
を実装します。
TestCmdFunctionCommandlet.cpp
#include "TestCmdFunctionCommandlet.h"
DEFINE_LOG_CATEGORY_STATIC(LogTestCmdFunctionCommandlet, Log, All);
UTestCmdFunctionCommandlet::UTestCmdFunctionCommandlet(const FObjectInitializer& ObjectInitializer) : Super(ObjectInitializer)
{
LogToConsole = false;
}
int32 UTestCmdFunctionCommandlet::Main(const FString& CmdLineParams)
{
FString Value;
if (FParse::Value(*CmdLineParams, TEXT("param0="), Value))
{
UE_LOG(LogTestCmdFunctionCommandlet, Display, TEXT("param0=%s"), *Value);
return 0;
}
return 1;
}
コマンドレットを呼び出す
/PATH/TO/ENGINEROOT/Engine/Binaries/Win64/UE4Editor-Cmd.exe /PATH/TO/PROJECTROOT/MyGame.uproject -run=TestCmdFunction -param0=hogehoge -stdout -UTF8Output