[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] 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..

[UE] ArcheType
UE52023. 12. 31. 22:13[UE] ArcheType

자주사용하는 URPOPERTY안에 들어가는 Attribute들... GC에 의해 관리가 되도록 UPROPERTY를 붙이고 BlueprintReadOnly, Category정도만 생각없이 쓰다가 최근에 Lyra클론 코딩하면서 다양한 속성값들을 쓰게 되었고 아무 생각없이 쓰다 답답하여 글을 한번 정리하게 되었습니다. 공식문서를 봐도 아키타입? 어쩌구 저쩌구 하던데 머선 말인지 잘 모르겠어서 여러 글을 참고하다 이해하게 되어 따로 정리 하게 되었습니다. 일단 아키타입과 인스턴스가 뭔지 결론 부터 보면은 아래 MyTestActor라는 cpp클래스를 상속받은 블루프린트 클래스가 BP_MyTestActor(아키타입)이고 Level에 배치한 BP_MyTestActor는 BP_TestActor의 인스턴스입니다. UCL..

[UE] StaticClass
UE52023. 11. 29. 17:56[UE] StaticClass

공식 문서를 읽어보면 UClass::StaticClass는 "return a object representing this class at runtime"이라고 합니다. 즉 런타임에 클래스를 나타내는 UClass 객체를 반환 한다고 되어 있습니다. 그럼 UClass객체는 뭔지부터 살펴보기 전에 언리얼을 '프로퍼티 시스템' 혹은 '리플렉션'에 대해서 먼저알아 보도록 하겠습니다. 리플렉션(Reflection)이란? 프로그램 실행시간에 자기 자신을 조사하는 기능입니다. C++에서는 해당 기능을 지원하지 않기 때문에 언리얼에서 자체적으로 만든 시스템입니다. 프로퍼티 시스템이라고도 불립니다. 해당 기능은 언리얼 에디터의 디테일 패널, 직렬화, GC, Network Reflication, 블루프린트/C++ 커뮤니케이..

image