[Unreal Engine 4] 메모리 관리 메모리 관리는 안정성이 높고 버그가 없는 프로그램을 작성하는 과정에서 늘 중요한 주제다. dangling pointer는 이미 메모리에서 지워진 대상을 참조하는 포인터이며, 추적하기 어려운 버그를 만드는 대표적인 사례다. UE4의 UObject 참조 카운팅 시스템은 UObject 클래스로부터 파생된 액터와 클래스의 메모리를 관리하는 기본적인 수단으로, 이를 통해 UE4 프로그램 내에서 메모리가 관리된다. 만약 UObject에서 파생하지 않은 C++ 클래스를 작성한다면 TSharedPtr/TWeakPtr 를 사용하면 된다. 이번 글에선 메모리 관리와 코드 디버깅 방법을 설명한다. 메모리 관리 기능의 도움을 받으면 메모리 해제를 잊는 실수를 걱정하지 않아도 된다. 메모리 관리를 하는 프로그램에서는 동적으로 .. UnrealEngine/기능 4년 전
[Unreal Engine 4] 클래스 생성 이번에 만들 것은 표준 C++ 클래스이며, UCLASS라고 부르는 것을 만들 것이다. UE4 블루프린트 편집기와 잘 통합되는 C++ 클래스와 구조체는 UCLASS 매크로를 제대로 구성하면 UCLASS를 복제하거나 재사용할 수 있게 만들어서 커스텀 C++ 오브젝트를 언리얼의 비주얼 스크립팅 언어 블루프린트 내에서 사용할 수 있게 된다. 만일 팀 내에 디자이너가 있다면, 코드에 접근하지 않고도 프로젝트의 여러 형상에 접근하고 수정할 수 있게 된다. UCLASS에서 생성한 샘플 오브젝트는 복제하거나 재사용 가능하더라도 레벨에 배치되지 않는다. 배치되려면 C++ 클래스가 Actor base class 또는 그 아래의 서브클래스에서 파생되어야 한다. 이 내용은 나중에 다룬다. UCLASS 매크로를 사용하면 할당과.. UnrealEngine/기능 4년 전
[Unreal Engine 4] Level Blueprint 를 C++로 접근하기 언리얼엔진4로 작업을 하다보면, Level 에 있는 Actor 간 통신을 하기에 중개자가 있으면 좋을 것 같단 생각을 한다. 이를 위해 다양한 방법을 사용하는데 우리는 Level을 사용할 것이다. ( 우리가 DirectX나 또는 소프트웨어 렌더러를 사용한다면 Scene 또는 Manager 정도로 생각하면 될 것 같다. ) Level을 C++로 작성하여 Custom 함수도 추가하고, Actor 간의 통신을 유연하게 할 예정이다. 작성할 내용은, 각 Scene에 있는 몬스터들을 추가한 후 Level에게 알려주고 몬스터가 다 죽는 이벤트가 발생할 시에 Level 의 Delegate로 모두에게 BroadCasting 하는 방법으로 작성할 예정이다. 기본적으로 Level Blueprint는 ALevelScript.. UnrealEngine/기능 5년 전