25.01.31 (금)
·
내배캠/TIL
GameMode에서 Default Pawn Class를 설정한 Pawn의 메모리는 내부적으로 어떻게 처리되는지 궁금해져서 이에 대해 조사하다가 가비지컬렉션에 대해 정리하게 되었다. 가비지 컬렉션과 메모리 관리언리얼 엔진에서 디폴트 폰(Default Pawn)을 게임 모드에 등록하면 게임 시작 시 자동으로 캐릭터가 스폰된다. 이때 메모리 관리와 가비지 컬렉션(GC)이 어떻게 이루어지는지 정리한다.📌 캐릭터 스dong-grae.tistory.com 플레이어가 드론에 상호작용을 하고 조종을 하는 것을 구현하기 위해, PlayerController에 연결을 해제하고 드론에 Possess해야했고 이 과정에서 Possess함수를 호출하면 내부적으로 OnPossess 콜백함수가 호출된다는 사실을 알게되었다. 처음에..
가비지 컬렉션과 메모리 관리
·
내배캠/Unreal Engine
언리얼 엔진에서 디폴트 폰(Default Pawn)을 게임 모드에 등록하면 게임 시작 시 자동으로 캐릭터가 스폰된다. 이때 메모리 관리와 가비지 컬렉션(GC)이 어떻게 이루어지는지 정리한다.📌 캐릭터 스폰과 메모리 관리 메커니즘캐릭터 스폰 과정게임 모드의 DefaultPawnClass에 지정된 캐릭터 클래스는 APlayerController가 시작될 때 SpawnDefaultPawnFor() 메서드를 호출하여 자동으로 스폰된다.스폰된 캐릭터는 월드에 소유된 상태로 관리된다.메모리 관리 방식언리얼 엔진은 가비지 컬렉션 시스템을 사용하여 메모리를 관리한다.모든 UObject 기반 클래스(예: AActor, UActorComponent)는 GC의 관리 대상이다.GC는 일정 주기마다 참조되지 않는 객체들을 정..
Pawn에 Possess 하기
·
내배캠/Unreal Engine
플레이어가 드론을 조종하거나 탈 것을 타고 이동을 할 때, PlayerController가 다른 Pawn에 Possess해야 한다.드론을 예시로 플레이어에게 Possess 되어있는 Controller를 드론으로 전환하는 과정을 정리하려한다. 📍AController::Possess(APawn* InPawn) 에 관하여이 함수는 final로 선언되어 있기 때문에 자식 클래스에서 오버라이드 할 수 없다.기본적인 소유권 전환 로직이 매우 중요하고, 이를 안전하게 보호하기 위해 엔진 레벨에서 변경이 불가능하도록 설계된 것이다.언리얼 엔진은 Possess의 핵심로직(소유권 전환, 네트워크 복제, 상태 동기화 등)을 보장하기 위해 엔진 내부에서만 이로직이 작동하도록 제한했다.이로 인해 직접 오버라이드할 수 없고, ..
25.01.28 (화)
·
내배캠/TIL
플랫폼이 랜덤하게 생성되는 로직을 짜면서 플랫폼의 리스트를 Data Asset을 활용하여, 에디터에서 새로운 플랫폼을 만든다면 Data Asset에 등록시켜주기만 하면 자동으로 월드에 배치되게끔 설계를 해봤었다.그런데 아이템 클래스를 만드는 강의를 들으면서 추가적으로 Data Table에 대해 알게 되었다. Data Asset과 Data Table 둘 다 게임 내의 데이터를 저장하고 관리하는 역할을 하는 것은 알겠는데 왜 이 두 가지 방식으로 나뉘었는지 궁금해졌고 이 둘의 차이를 살펴보고 정리해봤다.  https://dong-grae.tistory.com/138 데이터 에셋과 데이터 테이블게임을 개발하다 보면 다양한 데이터를 체계적으로 관리해야 할 필요가 있다.아이템 정보, 적의 능력치, 맵 데이터 등 ..
데이터 에셋과 데이터 테이블
·
내배캠/Unreal Engine
게임을 개발하다 보면 다양한 데이터를 체계적으로 관리해야 할 필요가 있다.아이템 정보, 적의 능력치, 맵 데이터 등 게임 곳곳에서 데이터를 저장하고 불러오는 작업이 필요하다.이때 언리얼 엔진에서 주로 사용하는 데이터 구조가 데이터 에셋(Data Asset) 과 데이터 테이블(Data Table)이 있다.하지만 이 두 가지 방식은 사용 목적과 특징이 다르다.언제 데이터 에셋을 써야 하고, 언제 데이터 테이블을 써야 하는지 정리해보려 한다.  📌 데이터 에셋과 데이터 테이블의 차이점 ✅ 데이터 에셋 (Data Asset)데이터 에셋은 객체 단위로 데이터를 관리하는 방식이다. 언리얼 에디터에서 시각적으로 데이터를 확인하고 수정할 수 있으며, 블루프린트에서도 쉽게 접근할 수 있다.🟢 데이터 에셋의 장점런타임..
25.01.27 (월)
·
내배캠/TIL
https://dong-grae.tistory.com/133 인터페이스 기반 아이템 클래스 구현_1_인터페이스 설계Item 인터페이스// ItemInterface.h#pragma once#include "CoreMinimal.h"#include "UObject/Interface.h"#include "ItemInterface.generated.h"UINTERFACE(MinimalAPI)class UItemInterface : public UInterface{ GENERATED_BODY()};class STRIKEZONE_API IItemInterfacdong-grae.tistory.com https://dong-grae.tistory.com/136 인터페이스 기반 아이템 클래스 구현_2_아이템 스폰 및 레..