이 방법을 통해 런타임에 새로운 블루프린트를 생성할 수 있다고 한다. 검증해 볼 필요가 있다.
#include "Engine/Blueprint.h"
#include "Kismet2/KismetEditorUtilities.h"
UFUNCTION(BlueprintCallable, Category="Custom")
static UBlueprint* CreateNewBlueprint(UObject* Outer/* GetTransientPackage() 이런거 적어주나보다*/, FString Name)
{
if(!Outer) return nullptr;
UClass* BlueprintClass = UBlueprint::StaticClass();
UBlueprint* NewBlueprint = FKismetEditorUtilites::CreateBlueprint(BlueprintClass, Outer, FName(*Name), BPPTYPE_Normal, UBlueprint::StaticClass(), UBlueprintGeneratedClass::StaticClass());
return NewBlueprint;
}
게임 엔진의 핵심 객체로, 게임의 전반적인 시스템과 관련된 정보 및 기능에 접근할 수 있습니다.
현재 활성화된 UWorld 객체로, 게임의 월드 상태를 나타냅니다. 액터와의 상호작용, 레벨 관리, 게임플레이 로직 등이 포함됩니다.
Unreal Engine 에디터의 전역 객체로, 레벨 편집, 액터 배치 등 에디터에서 사용되는 기능에 접근할 수 있습니다.
현재 프레임을 나타내는 전역 변수입니다. 렌더링 또는 업데이트 주기와 관련된 작업에서 사용됩니다.
현재 엔진이 에디터 모드에서 실행 중인지 여부를 나타내는 플래그입니다. 에디터 모드와 게임 모드 간의 동작을 구분하는 데 사용됩니다.
현재 Play In Editor (PIE) 모드인지 여부를 나타냅니다. 에디터에서 게임을 실행 중인지 확인하는 데 사용됩니다.
전역 로그 객체로, 디버깅을 위한 로그 메시지를 기록하고 출력할 수 있습니다.
전역 설정 객체로, 게임 설정 파일에 접근하고 값을 읽고 쓸 수 있습니다. .ini 파일 등 설정 파일을 관리합니다.
엔진의 메인 루프를 제어하는 객체로, 엔진의 초기화, 실행, 종료 루틴을 관리합니다.
현재 엔진이 게임 모드에서 실행 중인지를 나타내는 플래그입니다. 게임 모드와 에디터 모드 간의 차이를 구분하는 데 사용됩니다.
Unreal Engine의 Slate UI 시스템에 대한 전역 객체로, Slate UI 시스템과 상호작용할 때 사용됩니다.
디버깅용으로 3D 공간에 다양한 시각적 도움을 그릴 수 있게 해주는 전역 객체입니다.
경고 메시지나 알림을 출력하는 전역 객체로, 디버깅 콘솔 또는 사용자에게 경고 메시지를 전달하는 데 사용됩니다.
Unreal Engine 에디터 모드 도구를 제어하는 전역 객체입니다. 현재 활성화된 에디터 모드의 도구와 관련된 작업을 관리합니다.
AI 관련 작업에서 사용되는 전역 블랙보드 객체입니다. AI 시스템에서 정보를 공유하고 행동을 제어할 때 사용됩니다.
현재 편집 중인 레벨의 뷰포트 클라이언트를 나타내는 전역 변수입니다.
거리 필드 계산을 비동기로 처리하는 큐를 나타냅니다.
현재 엔진이 서버로 실행되고 있는지 여부를 나타내는 플래그입니다.
현재 엔진이 클라이언트로 실행되고 있는지 여부를 나타내는 플래그입니다.
셰이더 컴파일링을 관리하는 전역 객체입니다.
스트리밍 가능한 자산을 관리하는 전역 객체입니다. 텍스처, 메쉬 등의 로딩과 언로딩을 제어합니다.
성능 통계 데이터를 수집하고 관리하는 전역 객체입니다. FPS, 메모리 사용량 등 성능 통계를 기록합니다.
현재까지 진행된 총 프레임 수를 나타내는 전역 변수입니다.
게임 또는 에디터가 종료 요청을 받았는지 여부를 나타내는 변수로, 종료 시 안전한 자원 해제를 위해 사용됩니다.
동적 RHI (Rendering Hardware Interface)를 나타내는 전역 객체입니다.
입력 지연 시간을 측정하는 타이머로, 입력 지연과 관련된 성능 분석에 사용됩니다.
현재 사용 중인 Unreal Engine의 버전을 나타내는 전역 변수입니다.
새로 생성된 월드를 나타내는 전역 변수입니다.
Unreal Engine의 모든 객체를 관리하는 배열로, UObject 기반의 객체들을 관리합니다.
렌더 타겟을 관리하는 풀로, 렌더 타겟을 재사용할 수 있도록 관리합니다.
엔진 루프에서 첫 번째 프레임인지 여부를 나타내는 플래그입니다.
게임 스레드의 ID를 나타내는 전역 변수입니다.
현재 느린 작업이 진행 중인지를 나타내는 플래그입니다.
현재 화면(또는 뷰포트)의 너비와 높이를 나타내는 전역 변수입니다.
Commandlet 실행 시 렌더링을 허용할지 여부를 나타내는 플래그입니다.
Unreal Engine이 유지할 수 있는 최대 프레임 카운터 값입니다.
물리 명령을 처리하는 핸들러입니다.
마지막으로 가비지 컬렉션이 수행된 프레임을 나타냅니다.
카메라의 근거리 클리핑 평면 값을 나타내는 전역 변수입니다.
게임 또는 에디터가 종료되는 중인지 여부를 나타냅니다.
현재 프레임의 시간을 나타내는 전역 변수로, 성능 최적화에 사용됩니다.
데모 모드(게임 시연 모드)인지 여부를 나타내는 플래그입니다.
시스템 해상도를 나타내는 전역 변수입니다.
각 피처 레벨에 대해 사용되는 셰이더 플랫폼을 나타냅니다.
텍스처 스트리밍을 관리하는 매니저입니다.
에디터에서 패키지를 로드 중인지 여부를 나타냅니다.
엔진이 시작된 시간을 나타내는 전역 변수입니다.
VR 에디터 모드를 활성화할지 여부를 나타내는 플래그입니다.
자동으로 실행되는 스크립트가 실행 중인지 나타냅니다.
레벨 스트리밍이 백그라운드에서 처리될지 여부를 설정하는 플래그입니다.
Unreal Engine 에서 Slate 와 UMG(User Interface Management) 는 둘다 UI 를 구성하는데 사용되는 시스템이지만, 그들의 목적과 사용방식에는 몇가지 중요한 차이점이 있습니다. 이 두 시스템은 서로 보완적인 역할을 하며, 프로젝트의 요구사항에 따라 선택적으로 사용될 수 있습니다. 때로는 두 시스템을 함께 사용하여, UMG 에서 기본 UI 를 구성하고 필요한 부분을 Slate 로 세밀하게 제어하는 방식도 가능합니다.
더 저수준이며, C++ 기반으로 작성되어 세밀한 제어가 가능하지만, 초기학습이 어렵습니다. 고성능과 유연성이 필요할 때 사용됩니다.
고수준이며 Blueprint 기반으로 시각적 편집기를 제공하여 사용하기 쉽습니다. 빠른 프로토타이핑과 디자이너 친화적인 작업 환경을 제공합니다.