본문 바로가기

새싹 UE5

24 - 08 - 23 (UPROPERTY, ACTOR 라이프 사이클, 모듈)

UPROPERTY

리플렉션이 가능하도록 만든다. 에디터와 상호작용이 가능해진다.

 

메타 지정자를 추가하여 여러 기능을 추가할 수 있다. 

https://dev.epicgames.com/documentation/en-us/unreal-engine/property-specifiers?application_version=4.27

 

 

 

ACTOR 라이프 사이클

 

 

블루프린트 함수 라이브러리

이름에는 블루프린트가 들어가지만 c++ 에서도 사용가능하다.

전역으로 함수를 만들어 모든 곳에서 사용가능하도록 설계한다.

예로 특정 Controller 등을 가져올 때 이 기능을 사용할 수 있다.

 

아래는 특정 Actor 가 존재한다면 PlayerController 를 가져오겠다는 전역함수이다.

.. 헤더
#pragma once

#include "Kismet/BlueprintFunctionLibrary.h"
#include "MyFuncLib.generated.h"

UCLASS()
class YOURPROJECTNAME_API UMyFuncLib : public UBlueprintFunctionLibrary
{
    GENERATED_BODY()

public:
    UFUNCTION(BlueprintCallable, Category = "Utilities")
    static APlayerController* GetPlayerControllerFromActor(AActor* Actor);
};

// cpp
#include "MyFuncLib.h"
#include "GameFramework/Actor.h"
#include "GameFramework/PlayerController.h"
#include "Engine/World.h"

APlayerController* UMyFuncLib::GetPlayerControllerFromActor(AActor* Actor)
{
    if (Actor)
    {
        // 액터가 소속된 월드에서 첫 번째 PlayerController를 가져옵니다.
        UWorld* World = Actor->GetWorld();
        if (World)
        {
            return World->GetFirstPlayerController();
        }
    }
    return nullptr;
}