언리얼 유니크 포인터

jelly·2025년 2월 19일

언리얼 엔진에서 유니크 포인터(Unique Pointer)는 메모리 관리를 위한 스마트 포인터 중 하나로, 객체의 소유권을 명확하게 관리할 수 있도록 도와줍니다. 유니크 포인터는 한 번에 하나의 객체만 소유할 수 있으며, 소유권이 다른 유니크 포인터로 이동할 수 있습니다. 이를 통해 메모리 누수를 방지하고, 객체의 생명 주기를 쉽게 관리할 수 있습니다.

유니크 포인터의 주요 특징
소유권: 유니크 포인터는 객체에 대한 유일한 소유권을 가집니다.
자동 메모리 해제: 유니크 포인터가 범위를 벗어나면 자동으로 메모리가 해제됩니다.
이동 세맨틱: 유니크 포인터는 소유권을 다른 유니크 포인터로 이동할 수 있습니다.

#include "CoreMinimal.h"
#include "GameFramework/Actor.h"
#include "MyActor.generated.h"

UCLASS()
class MYPROJECT_API AMyActor : public AActor
{
    GENERATED_BODY()

public:
    AMyActor();

protected:
    virtual void BeginPlay() override;

private:
    // 유니크 포인터를 사용하여 MyObject를 소유
    TUniquePtr<class UMyObject> MyObject;
};

// MyActor.cpp
#include "MyActor.h"
#include "MyObject.h"

AMyActor::AMyActor()
{
    // 유니크 포인터로 객체 생성
    MyObject = MakeUnique<UMyObject>();
}

void AMyActor::BeginPlay()
{
    Super::BeginPlay();

    // MyObject 사용
    if (MyObject)
    {
        MyObject->DoSomething();
    }
}
profile
jelly

0개의 댓글