0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【UE5】今さらUnrealC++で「コピペ機能」を作ってみる 2日目

Last updated at Posted at 2024-01-23

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」と入力する

スクリーンショット 2024-01-23 224436.png

実際の動作が以下
無題の動画-‐-Clipchampで作成-5.gif

4. 参考

UE4/C++: 4.18 以降発生するクリップボードのAPI仕様変更に伴う警告と必要な修正

【UE4】クリップボードから文字列を取得、設定 Copy&Paste

UE5/UE4 C++でクリップボードに文字列をコピー(Copy)したり、クリップボードから文字列をペースト(Paste)する

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?