1. 플러그인 만들기
편집 -> 플러그인 -> 추가 선택
- 아래와 같은 창이 뜨게 된다.
- 우리는 블루프린트에서 플러그인으로 만든 함수를 테스트 해보기 위해서 블루프린트 라이브러리 템플릿을 선택하여 만들 것이다.
플러그인 생성이 완료되었다면, 우리 프로젝트 폴더로 들어가 아래 세가지 폴더를 삭제 후, .uproject 파일을 우클릭해서 generate visual studio files를 해주어야 제대로 생성이 된다.
- .vs
- Binaries
- Intermediate
2. 블루프린트 라이브러리
블루프린트 펑션 라이브러리란
- 특정 게임플레이 오브젝트에 묶이지 않은 유틸리티 함수성을 제공해 주는 정적 함수 모음
- 프로젝트 전반에서 공통적으로 사용되는 함수를 정의하고 재사용할 수 있도록 도와주는 클래스
- 주로 디버깅용이나 헬퍼 함수를 만들어서 사용하게 된다.
특징
- 인스턴스를 만들지 않고 바로 사용이 가능하다.
- 단, 함수를 만들 때나 변수를 선언할 때 static으로 해야 한다.
참고) static keyword
https://gbleem.tistory.com/139
static Keyword
1. class 외부에서의 static의 의미개념)정의된 단위에서만 볼 수 있게 한다.static으로 선언한 그 파일 내부에서만 그 변수를 찾을 수 있다는 의 예시 1)statickeyword.cpp 파일static int s_Variable = 5; staticmai
gbleem.tistory.com
3. 플러그인 코드
간단하게 UserName이라는 변수를 set하고 get하는 함수를 만들었다.
헤더파일
더보기
#pragma once
#include "Kismet/BlueprintFunctionLibrary.h"
#include "MyIDPluginBPLibrary.generated.h"
UCLASS()
class UMyIDPluginBPLibrary : public UBlueprintFunctionLibrary
{
GENERATED_BODY()
public:
UFUNCTION(BlueprintCallable, meta = (DisplayName = "Execute Sample function", Keywords = "MyIDPlugin"), Category = "MyIDPlugin")
static float MyIDPluginSampleFunction(float Param);
UFUNCTION(BlueprintCallable, meta = (DisplayName = "Plugin SetUserName", Keywords = "MyIDPlugin"), Category = "MyIDPlugin")
static void SetUserName(const FString& NewName);
UFUNCTION(BlueprintPure, meta = (DisplayName = "Plugin GetUserName", Keywords = "MyIDPlugin"), Category = "MyIDPlugin")
static FString GetUserName();
private:
static FString UserName;
};
cpp파일
더보기
#include "MyIDPluginBPLibrary.h"
#include "MyIDPlugin.h"
float UMyIDPluginBPLibrary::MyIDPluginSampleFunction(float Param)
{
return Param;
}
FString UMyIDPluginBPLibrary::UserName = TEXT("Unknown");
void UMyIDPluginBPLibrary::SetUserName(const FString& NewName)
{
UserName = NewName;
GEngine->AddOnScreenDebugMessage(-1, 2.f, FColor::Red, FString::Printf(TEXT("UserName set to %s"), *UserName));
}
FString UMyIDPluginBPLibrary::GetUserName()
{
return UserName;
}
코드를 빌드 하면 아래와 같이 어떠한 BP에서도 사용이 가능하다.
- 위의 코드에서 meta = (DisplayName = "Plugin GetUserName", Keywords = "MyIDPlugin") 를 통해서 함수 이름과 BP에서 찾을 때 키워드를 변경할 수 있다.
ActorBP에서 사용
실행 모습
Level BP에서 검색해본 모습
'Unreal Engine' 카테고리의 다른 글
Unreal Engine - 야구게임(데디케이티드 서버) (0) | 2025.03.29 |
---|---|
Unreal Engine - 데디케이티드 서버 개념 및 실습 (0) | 2025.03.27 |
Unreal Engine - 야구 게임(리슨 서버) (1) | 2025.03.25 |
Unreal Engine - Standalone을 리슨 서버로 확장하기 (0) | 2025.03.24 |
Unreal Engine - Gameplay Framework (0) | 2025.03.24 |