Unreal Engine 32

[UE]스마트 포인터

순서스마트 포인터란?스마트 포인터의 계열과 종류스마트 포인터 사용시 장단점스마트 포인터란?포인터처럼 동작하지만, 단순한 주소 값 저장 외에 메모리 관리나 안정성 보장을 추가로 해주는 객체스마트 포인터는 RAII 원칙을 적용해서, 포인터가 더 이상 필요 없어질 때 자동으로 자원을 해제 해줌.스마트 포인터의 계열과 종류Non-UObject 계열: UObject가 아닌 일반 클래스/구조체에 사용TUniquePtrC++의 unique_ptr과 동일단일 소유권, 복사 불가, 이동만 가능함범위를 벗어나면 자동 삭제됨TSharedPtr참조 카운트 기반마지막 참조가 해제될 때 객체가 삭제됨MakeShared()로 생성TWeakPtrTSharedPtr에서 약한 참조대상이 살아있는지 확인 가능(Pin()을 호출해서 유효하..

Unreal Engine 2025.08.29

[UE] 언리얼 엔진의 GC

순서가비지 컬렉션 GC란?GC의 동작 원리GC가 보는 참조와 보지 못하는 참조객체 생명주기 관련 포인트GC로 인해 자주 겪는 문제C++의 GC와 UE의 GC 차이가비지 컬렉션 GC란?UObject 기반 객체들의 메모리를 자동으로 정리하는 도달성 기반의 마크-앤-스윕 시스템이다.UObject들 간의 레퍼런스를 따라 도달 가능한 객체는 살리고, 도달 불가능한 객체는 수거함.도달성이란?특정 객체가 아직 사용중이라고 간주할 수 있는지를 뜻함.도달 가능한 객체: 현재 실행 중인 코드에서 경로를 따라 접근할 수 있는 객체 > 살려둠도달 불가능한 객체: 어느 곳에서도 참조하지 않는 객체 > 필요없는 메모리로 판단 > 수거대상GC의 동작 원리루트(Root) 수집엔진이 시작.유지하는 지속적 객체들, AddToRoot()..

Unreal Engine 2025.08.28

[UE] 언리얼의 클래스들

순서GameMode 클래스GameInstance 클래스GameState 클래스PlayerState 클래스GameMode 클래스역할: 게임 규칙과 규칙 실행자특징GameMode는 서버 전용 클래스로 서버에서만 존재하며 클라이언트에서는 존재하지 않음 > 클라이언트에서는 GameState로 동기화만 받도록 함GameMode는 레벨마다 1개만 존재함클라이언트만 있는 싱글 플레이의 경우 클라이언트 프로세스 안에 서버 역할도 함께 실행을 시킴 => 로컬 서버 + 로컬 클라이언트가 같은 프로세스 안에 동시에 존재하는 구조로 로컬 서버 부분에서 GameMode가 생성됨.로컬 클라이언트는 내부적으로 서버가 가진 GameMode의 규칙을 그대로 따름.어떤 플레이어 캐릭터를 사용할지, 플레이어가 어떻게 스폰되지, 점수 규칙..

Unreal Engine 2025.08.28

[UE]언리얼 오브젝트

순서오브젝트란?UObject의 특징주요 UObject 하위 개념오브젝트의 생명 주기Class Default Object란?오브젝트란?모든 클래스의 최상위 Base 클래스임언리얼에서 사용하는 대부분의 것은 UObject를 상속받아 만들어짐.주요 하위 개념언리얼의 리플렉션 시스템, GC, 에디터와의 연동 등을 가능하게 해주는 핵심 클래스임UObject의 특징리플렉션 지원: UCLASS(), UPROPERTY(), UFUNCTION()같은 매크로를 붙이면 언리얼이 해당 객체를 에디터/블루프린트에서 인식할 수 있음.GC: 일반 C++ 포인터 관리와 다르게 UObject 기반 클래스에서 UPROPERTY()로 등록된 포인터는 언리얼의 GC가 추적하여 자동으로 메모리를 관리함에디터 및 블루프린트 통합: UObjec..

Unreal Engine 2025.08.28

[UnrealEngine] Enhanced Input System

순서Enhanced Input System이란?EnhancedInputSystem 헤더파일Enhanced Input System의 구성요소Enhanced Input System이 추구하는 설계 원칙Enhanced Input System의 단점 및 고려사항Enhanced Input System이란?UnrealEngine5에서 제공하는 새로운 입력시스템이다.입력 이벤트를 데이터 자산 기분으로 구성하고, 이를 EnhancedInputComponent를 통해 처리함코드/블루프린트 내에서 키와 액션을 직접 바인딩하던 방식에서 Enhanced Input으로 더 많은 추상화 계층과 구조적 관리 방식을 제공함EnhancedInputSystem 헤더파일"EnhancedInputComponent""InputAction""..

Unreal Engine 2025.08.01

[Unreal Engine] Unreal Engine_C++ 매크로

순서Unreal C++ 매크로란?주요 매크로Unreal C++ 매크로란?언리얼 엔진의 헤더 툴(UHT)이 처리하는 특별한 주석/메타데이터.C++ 코드에 리플렉션(reflection) 정보를 추가하여 기능에디터에 속성을 노출블루프린트와 상호작용GC(Garbage Collection)대상 객체로 관리 가능컴파일 전에 UHT가 읽어들여 자동 코드 생성 및 메타데이터 등록주요 매크로클래스 관련 UCLASS(): 언리얼이 이 클래스를 관리하도록 표시USTRUCT(): 언리얼에 구조체 등록UENUM(): 언리얼에 열거형 등록UINTERFACE(): 언리얼 인터페이스 클래스 등록GENERATED_BODY(): 헤더 툴이 가상 함수 테이블, 리플렉션 데이터, 직렬화 함수 등을 자동 생성변수 관련UPROPERTY(): ..

Unreal Engine 2025.07.16

[Unreal Engine] 리플렉션 시스템

순서리플렉션이란?클래스 리플렉션변수 리플렉션함수 리플렉션리플렉션이란?C++ 클래스의 변수 및 함수 정보를 엔진 내부의 메타데이터 형태로 저장하고, 이를 에디터나 블루프린트에서 활용할 수 있게 만들어주는 기술C++ 클래스에 있는 여러 멤버를 Reflection하여 에디터와 블루프린트에서 직접 설정, 호출이 가능함프로그래머가 작성한 C++ 로직의 뼈대를 디자이너나 다른 팀원들이 에디터에서 직관적으로 조정할 수 있음매개변수를 코드에서만 변경하는 것이 아니라, 에디터에서 바로 조정(슬라이더 또는 입력)하여 반복 테스트를 빠르게 진행가능클래스 리플렉션#include ClassName.generated.h 헤더파일UClass() 매크로해당 클래스를 언리얼 엔진의 리플렉션 시스템에 등록한다는 의미UClass() 매크..

Unreal Engine 2025.07.09

[Unreal Engine]Unreal_C++ 빌드 프로세스

순서Visual Studio C++ 빌드 설정Visual Studio C++ 빌드Visual studio C++ 빌드 설정코드의 빌드 과정.코드를 컴파일(Compile)을 거쳐 링크(Link)를 하면 동적 라이브러리(DLL)가 생성된다.생성된 DLL은 언리얼 에디터에 로드되고, 새로 작성한 클래스, 함수 등이 게임과 에디터 내에서 즉시 반영됨.빌드 구성 및 플랫폼 확인Visual studio 상단 툴바에서 빌드 구성(Configuration)과 플랫폼(Platform)을 설정할 수 있음빌드 구성(Configuration)DebugGame게임 로직만 디버그 정보를 포함, 엔진은 최적화된 상태로 빌드에디터가 아닌 독립 실행 파일 환경에서 디버깅이 가능DebugGameEditor에디터 환경에서 게임 로직을 디..

Unreal Engine 2025.07.07

[Unreal Engine] Actor의 라이프사이클

순서Actor란?라이프사이클이란?Actor의 라이프사이클Actor란?레벨에 배치할 수 있는 모든 오브젝트를 의미함.카메라, 스태틱 메시, 플레이어 시작 위치 등 게임 내에서 상호작용하는 모든 것들이 Actor라고 할 수 있음.Actor는 이동, 회전, 크기조정과 같은 3D변환을 지원함.라이프사이클이란?액터(Actor)가 생성되고, 작동하며, 파괴되는 전체 과정을 의미함.Actor의 라이프사이클생성(Instantiation/Spawn)액터(Actor)가 게임 월드에 생성되는 단계초기화(Initialization)생성된 액터가 사용되기 전에 초기화되는 단계 - BeginPlay 이벤트나 생성자에서 초기화 작업을 할 수 있음.작동(Tick)액터가 매 프레임마다 실행되는 로직을 수행하는 단계. Tick함수 또..

Unreal Engine 2025.07.01

[Unreal Engine] 활용 프로그램 제작해보기

순서Level 생성하기Actor 생성하기.cpp 파일과 .h파일 작성하기Level 생성하기새로운 Level을 만들기 위해 File에서 'New Level'을 선택Open월드 대신 Basic Level을 선택하여 CreateActor 생성하기새로운 Actor를 만들기 위해 Tools에서 'New C++ Class'를 선택Class 종류 중에 Actor를 선택하여 이름을 입력하고 생성 - Actor는 생성할때 클래스의 이름 앞에 A를 붙임.cpp와 .h파일 작성하기

Unreal Engine 2025.06.17