FVector::Parallel 함수 사용법언리얼 엔진(UE4)의 FVector 클래스는 3D 벡터를 다루기 위한 다양한 기능을 제공합니다. 그 중 FVector::Parallel 함수는 두 벡터가 평행한지 여부를 확인하는 데 사용됩니다.함수 정의static bool Parallel(const FVector& Normal1, const FVector& Normal2, float ParallelCosineThreshold = THRESH_NORMALS_ARE_PARALLEL);// #define UE_THRESH_NORMALS_ARE_PARALLEL (0.999845f) /* Two unit vectors are parallel if abs(A dot B) is greater th..
인사말 안녕하세요. 이번 포스트에서는 언리얼엔진에서 패키징한 프로그램(.exe)가 윈도우상에서 1개만 존재하는지 체크하고 2개 이상의 프로그램이 중복으로 실행되지 않도록 하는 것에 대해 작성하겠습니다. 사용법 아래의 코드를 참고해서 GameInstace 의 초기화 부분에 함수 또는 코드블럭을 작성해서 넣어주면 게임(프로그램)이 실행될 때 인스턴스를 체크해서 프로그램이 1개만 실행되도록 합니다. 코드 const UGeneralProjectSettings& ProjectSettings = *GetDefault(); const FString LockFilePath = FPlatformProcess::UserTempDir() + ProjectSettings.ProjectID.ToString(); if (!IFi..
Unreal Engine 에서 Editor Subsystem 사용하기 Unreal Engine 에서는 다양한 시스템과 기능을 통해 게임 개발의 효율성을 높일 수 있습니다. 그중 하나인 Editor Subsystem은 Unreal Engine 에디터 내에서 커스텀 기능을 구현하고 관리할 때 유용한 도구입니다. 이 글에서는 Unreal Engine 5 프로젝트에서 Editor Subsystem을 사용하기 위해 필요한 설정 방법을 설명합니다. Editor Subsystem이란? Editor Subsystem은 Unreal Engine 에디터에서 작동하는 서브시스템으로, 개발자가 에디터 내에서 커스텀 기능을 쉽게 추가하고 관리할 수 있게 해줍니다. 예를 들어, 자주 사용하는 작업을 자동화하거나, 에디터의 UI를..
언리얼엔진 5 C++ Camera Shake 사용법 1. Build.cs 추가 Build.cs 에 "GameplayCameras" 를 추가한다. 2. ULegacyCameraShake 사용 UE4 에서 사용중이던 MatineeCameraShake 가 ULegacyCameraShake 로 변경 그에 따라 클래스만 다르게 기존 CameraShake 를 이용하던 방식대로 해주면 된다. https://docs.unrealengine.com/5.3/en-US/API/Plugins/GameplayCameras/ULegacyCameraShake/ 3. 예제 코드 if(APlayerController* PC = UGameplayStatics::GetPlayerController(GetWorld(),0)) { if(Fi..
목표 - 언리얼엔진 C++ 코드를 이용해서 에디터 툴바 버튼을 이용한 에디터 유틸리티 위젯 블루프린트 열기 방법 - C++ 코드로 만들어진 에디터 툴바 버튼의 클릭 이벤트 함수 내에 구현한다. - Path 는 에디터상에 있는 에디터 위젯 블루프린트의 레퍼런스 주소를 넣어준다. 코드 const FString Path(TEXT("Reference Path")); if(UObject* Blueprint = UEditorAssetLibrary::LoadAsset(Path); IsValid(Blueprint)) { if (UEditorUtilityWidgetBlueprint* EditorWidget = Cast(Blueprint); IsValid(EditorWidget)) { UEditorUtilitySubsys..
커스텀 구조체를 에디터상에서 데이터테이블로 만들기 - 예시 코드 #include "Engine/DataTable.h" /** 레벨 업 표 항목을 정의하는 구조체 */ USTRUCT(BlueprintType) struct FLevelUpData : public FTableRowBase { GENERATED_USTRUCT_BODY() public: FLevelUpData() : XPtoLvl(0) , AdditionalHP(0) {} /** 'Name' 열은 XP Level 과 같습니다. */ /** 이전 레벨에서 해당 레벨로 가기 위해 필요한 XP 입니다. */ UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=LevelUp) int32 XPtoLvl; /** ..