0. 最初
今回は「コピー」 & 「ペースト」を実装します
BPのノードでは公開されていないのでC++を使用しないといけません
1. 準備
プロジェクト名.Buid.cs
を開き AddRange
の引数に ApplicationCore
を追加します
using UnrealBuildTool;
public class BlogProject : ModuleRules
{
public BlogProject(ReadOnlyTargetRules Target) : base(Target)
{
PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs;
PublicDependencyModuleNames.AddRange(new string[]
{
"Core", "CoreUObject", "Engine", "InputCore", "ApplicationCore"
});
}
}
2. 実装
UBlueprintFunctionLibrary
を継承させpublic
の下にstatic void
で関数を宣言する
#include "CoreMinimal.h"
#include "Kismet/BlueprintFunctionLibrary.h"
#include "ClipboardUtility.generated.h"
UCLASS()
class BLOGPROJECT_API UClipboardUtility : public UBlueprintFunctionLibrary
{
GENERATED_BODY()
public:
UFUNCTION(BlueprintCallable)
static void Copy(const FString& Str);
UFUNCTION(BlueprintCallable)
static void Paste(FString& Dest);
};
cppに#include "HAL/PlatformApplicationMisc.h"
を定義する
#include "ClipboardUtility.h"
#include "HAL/PlatformApplicationMisc.h"
void UClipboardUtility::Copy(const FString& str)
{
FPlatformApplicationMisc::ClipboardCopy(*str);
}
void UClipboardUtility::Paste(FString& Dest)
{
FPlatformApplicationMisc::ClipboardPaste(Dest);
}
3. 動作
BPに移り、「Copy」と「Paste」と入力する
4. 参考
UE4/C++: 4.18 以降発生するクリップボードのAPI仕様変更に伴う警告と必要な修正
【UE4】クリップボードから文字列を取得、設定 Copy&Paste
UE5/UE4 C++でクリップボードに文字列をコピー(Copy)したり、クリップボードから文字列をペースト(Paste)する