본문 바로가기
반응형

unreal engine8

언리얼 C++ TSharedFromThis 완전정복 (자기 참조 스마트 포인터 안전 가이드) TSharedFromThis – 자기 자신을 SharedPtr로 안전하게 넘기고 싶을 때Unreal Engine을 사용하다 보면 TSharedPtr이나 TSharedRef를 통해 객체의 메모리를 자동으로 관리하게 됩니다. 그런데 때때로, 객체 내부에서 자기 자신(this)을 스마트 포인터로 외부에 넘겨야 하는 상황이 생깁니다. 이때 그냥 TSharedPtr(this)처럼 쓰면 큰일 납니다.📌 왜 필요할까?객체를 스마트 포인터로 만들었더라도, 내부에서 this를 외부로 넘기면 참조 카운트가 관리되지 않습니다. 이럴 때 TSharedFromThis가 필요합니다.✅ TSharedFromThis로 해결class FMyObject : public TSharedFromThis{public: void Init.. 2025. 5. 18.
언리얼 C++ 에셋 경로 다루기 가이드 (FSoftObjectPath, TryLoad, ClassPath) FSoftObjectPath / FSoftClassPath – 언리얼의 소프트 참조 이해하기FSoftObjectPath와 FSoftClassPath는 Unreal Engine에서 소프트 참조(Soft Reference)를 다룰 때 사용하는 구조체입니다. 하드 참조처럼 직접적으로 객체를 메모리에 로딩하지 않고, 필요할 때만 로딩해서 메모리 관리에 유리합니다.🔹 FSoftObjectPath란?특정 객체(UObject)의 경로 정보를 문자열로 저장하는 구조체입니다. 해당 객체를 직접 메모리에 로드하지 않고, 나중에 동적으로 로드할 수 있도록 설계되어 있습니다.FSoftObjectPath ObjectPath(TEXT("/Game/Blueprints/BP_MyActor.BP_MyActor"));UObject* .. 2025. 5. 14.
bShowMouseCursor – 언리얼 엔진에서 마우스 커서 보이기 bShowMouseCursor는 Unreal Engine에서 마우스 커서를 보이게 할지 숨길지를 결정하는 변수입니다. 이 값은 PlayerController에 존재하고, true로 설정하면 게임 화면 위에 마우스 커서가 보이게 됩니다.사용 목적UI를 조작할 때나, 마우스로 클릭해야 하는 인터페이스가 있는 경우 커서가 필요합니다. 반대로 일반적인 3D 게임에서는 보통 숨겨져 있습니다.사용 예시APlayerController* PC = GetWorld()->GetFirstPlayerController();if (PC){ PC->bShowMouseCursor = true;}이렇게 하면 커서가 항상 보이게 됩니다. 게임을 멈추고 메뉴를 띄우는 시점, 또는 UI 전용 모드에서는 이 설정이 필수입니다.함께 쓰.. 2025. 5. 13.
언리얼 C++ TTuple 초보자 가이드 (복수 반환값, 안전 사용법, 실전 예제) TTuple은 언리얼 엔진에서 여러 개의 데이터를 묶어서 한 번에 다루고 싶을 때 사용하는 템플릿 컨테이너입니다.C++ 표준의 std::tuple과 유사하지만, 언리얼의 타입 시스템과 잘 통합되어 있으며 함수 반환값이나 간단한 데이터 묶음에 매우 유용합니다.1. 기본 사용법TTuple UserData = MakeTuple(42, TEXT("PlayerOne"));int32 ID = UserData.Get();FString Name = UserData.Get();UE_LOG(LogTemp, Log, TEXT("ID: %d, Name: %s"), ID, *Name);MakeTuple() 함수로 초기화Get() 방식으로 각 요소에 접근2. 사용하기 좋은 상황여러 개의 값을 하나의 함수에서 반환하고 싶을 때결과.. 2025. 5. 8.
언리얼 블루프린트 vs C++ 뭐가 더 좋을까? (초보 개발자 필독 비교 가이드) 언리얼 엔진을 처음 배우는 초보자에게 가장 먼저 다가오는 질문 중 하나는 "블루프린트로 시작할까, 아니면 C++로 시작할까?"입니다. 두 방법 모두 장단점이 뚜렷하며, 목적에 따라 선택 기준이 달라집니다. 본 글에서는 블루프린트와 C++의 차이점, 어떤 상황에서 어떤 방식을 선택해야 할지, 초보자와 게임 개발 지망생에게 알맞은 방향성을 구체적으로 안내합니다.블루프린트: 시각적 툴의 강점언리얼 블루프린트(Blueprint)는 언리얼 엔진에서 제공하는 비주얼 스크립팅 도구로, 복잡한 코드를 작성하지 않고도 게임 로직을 구성할 수 있는 장점이 있습니다. 특히 초보자에게는 빠르게 기능을 구현해보고, 엔진 내 다양한 기능을 실습하는 데 매우 적합합니다. 예를 들어, 캐릭터의 움직임 제어나 간단한 UI 구현, 타이.. 2025. 5. 6.
Paused 상태에서도 Tick이 가능? (FTickableGameObject 활용법, Tick 우회, 게임정지 대응) FTickableGameObject는 언리얼 엔진에서 Actor나 Component에 의존하지 않고 전역적인 Tick을 받을 수 있는 인터페이스입니다. 이를 통해 UI 매니저, 상태 관리자, 게임 시스템 싱글턴 등 다양한 시스템에 독립적인 틱 기반 로직을 구현할 수 있습니다.✅ 기본 개념FTickableGameObject는 UObject를 상속받지 않는 순수 클래스에서도 사용할 수 있으며, 최소한 다음 세 가지 함수를 구현해야 합니다.virtual void Tick(float DeltaTime)virtual bool IsTickable() constvirtual TStatId GetStatId() const📄 필수 구현 예제class FMyTickableObject : public FTickableGa.. 2025. 5. 6.