[UE5] SetBrushFromSoftTexture함수 분석
UE52025. 6. 21. 18:32[UE5] SetBrushFromSoftTexture함수 분석

UImage클래스의 SetBrushFromSoftTexture함수를 간단하게 분석하고 본인 피셜로 정리하였습니다.우선 해당함수는 텍스쳐를 '비동기 로딩'을 해주는 함수이다. ue에서는 ref가 두가지로 나뉘는데 첫번째는 hard ref 두번째는 soft ref가 있다. hard ref는컴파일 타임에 설정된 Resource 또는 Instance에 대한 직접적인 포인터이다.우리의 캐릭터가 로드되면서, 함께 로딩하는 TObjectPtr로 선언한 언리얼 오브젝트들도 메모리에 함께 로딩된 것을 의미하고 soft ref는 필요한 데이터만 로딩하도록 할 수 있는 것을 의미한다. 에셋의 경로만을 가지고 있고 사용자가 manual하게 로드해주어야한다(필요시) SetBrushFromSoftTexture함수는 텍스쳐를 비동..

[UE] Unreal Smart Pointer
UE52024. 1. 23. 23:33[UE] Unreal Smart Pointer

UE의 스마트 포인터 라이브러리에는 아래 4가지 스마트 포인터가 있습니다. - TSharedPtr - TSharedRef - TWeakPtr - TUniquePtr 위 스마트 포인터들은 메모리 할당과 추적의 부담을 해소해주도록 설계된 C++11의 스마트 포인터의 커스텀 구현입니다. 위 스마트 포인터들은 언리얼 오브젝트(UObject)에 대해 사용할 수 없습니다. 언리얼 오브젝트(UObject)는 별도의 메모리 추적 시스템(GC)를 사용하기 때문입니다. (UObject GC에 의헤 TSharedPtr로 관리됩니다. 그래서 TSharedPtr로 UObject를 가르킬 수 없습니다. => 사이클 발생) TSharedPtr 위에서 설명한것과 같이 TSharedPtr은 UObject를 가르킬 수 없습니다. UOb..

[UE] C1189 에러 해결방법
UE52024. 1. 22. 19:07[UE] C1189 에러 해결방법

1시간 정도 해매다가 해결한 에러입니다. 원인부터 설명하면 저는 일단 filename.generated.h 를 두번 참조하여 발생하였습니다...;; 당연히 한번만 include 하는것이 정상이지만 정신없이 파일들 만들고 필요한 헤더 파일들을 추가하다 발생한 문제인듯합니다. 처음에는 "Severity Code Description Project File Line Suppression State Error C1189 #error: "LyraCloneEquipmentDefinition.generated.h already included, missing '#pragma once' in LyraCloneEquipmentDefinition.h" LyraClone C:\Rookiss\Rookiss_Lyra\Unrea..

[UE] UObject::CreateUObject Delegate 바인딩 언제, 어디서, 왜 쓰는지
UE52024. 1. 5. 23:19[UE] UObject::CreateUObject Delegate 바인딩 언제, 어디서, 왜 쓰는지

이번글은 제가 햇갈렸던 Delegate에 대한 글입니다. DECLARE_DELEGATE_OneParam(FMyDelegate, int32); ---------- UCLASS() class DELEGATETEST_API TestClass: public AActor { GENERATED_BODY() // .... public : FMyDelegate TestClass_OneParam; }; ---------- void TestCharacter::CallDeleFunc_Single_OneParam(int32 nValue) { UE_LOG(LogTemp, Warning, TEXT("CallDeleFunc_Single_OneParam / %d"), nValue); } void TestCharacter::Begin..

[UE] UE_INLINE_GENERATED_CPP_BY_NAME + LNK2005
UE52024. 1. 3. 17:23[UE] UE_INLINE_GENERATED_CPP_BY_NAME + LNK2005

이번글은 제가 Lyra프로젝트 클론코딩하다 UE_INLINE_GENERATED_CPP_BY_NAME 메크로안 매개변수를 잘 못 전달하여 LNK2005에러를 해결한 과정과 UE_INLINE_GENERATED_CPP_BY_NAME를 정리한 글입니다. 일단 해결한 방법은 ㄱ무식하게 작성했던 파일들을 노트패드에 다 복붙해두고 만들었던 파일 전부 다 삭제후 파일들을 다시 하나씩 만들어 빌드를 한단계씩 해나가며 원인을 찾아 해결하게 되었습니다. 원인은 LyraPawnComponent_CharacterParts.cpp .h, LyraControllerComponent_CharacterParts.cpp .h 이렇게 각각 4개씩 있고 각각의 .cpp파일 상단에 UE_INLINE_GENERATED_CPP_BY_NAME( ..

[UE] FObjectInitializer
UE52024. 1. 2. 18:10[UE] FObjectInitializer

Lyra프로젝트를 보다 보면 거의 모든 cpp 클래스 생성자에 ALyraCharacter(const FObjectInitializer& ObjectInitializer = FObjectInitializer::Get()); 위처럼 되어 있는것을 볼 수 있습니다. FObjectInitislzier클래스는 무엇이며 생성자의 인자로 왜 전달하는 것인지 궁금하여 정리하게 되었습니다. UE 포럼에도 비슷한 글이 있었습니다. 생성자에 'FObjectInitializer'이거 왜쓰냐? 무슨 차이냐? 라는 질문인데 https://forums.unrealengine.com/t/do-i-have-to-use-fobjectinitializer-in-constructor/363383/3 Do I have to use FObje..

image