2025/08/29 7

[UE] 비헤이비어 트리와 FSM

순서비헤이비어 트리란?비헤이비어 트리의 장단점FSM이란?FSM의 장단점비헤이비어 트리와 FSM 비교비헤이비어 트리란?Behaviour Tree는 게임 AI에서 행동 결정을 트리 구조로 표현한 것임노드 기반으로 행동을 구성함루트 노드 > AI가 실행 시작Composite Node > Sequence, Selector 같은 제어 노드Decorator Node > 조건 검사, 실행 제한Task Node > 실제 행동 수행특징: 행동을 계층적으로 구성하여 복잡한 AI 행동을 모듈화 가능함비헤이비어 트리의 장단점장점유연성: 행동을 트리 구조로 쉽게 조합 가능함모듈화: 노드 단위로 재사용 가능조건 기반 실행: Decorator로 실행 조건 제어 가능디버깅 용이: 트리 구조라 시각화 가능단점상태 유지 어려움: 이전 ..

Unreal Engine 2025.08.29

[UE] UE의 string 클래스

순서언리얼 주요 문자열 클래스의 종류FStringFNameFTextANSICHAR/TCHAR 배열용도별 클래스언리얼 주요 문자열 클래스의 종류언리얼 주요 문자열 클래스의 종류로 FString, FName, FText, ANSICHAR/TCHAR 배열이 있음.FString동적 문자열 클래스로 TCHAR 기반임.복사, 덧붙이기, 포맷 등 다양한 연산을 제공함FName주로 식별자 용도로 사용함문자열 데이터를 해시 기반으로 관리하여 비교가 매우 빠름동적 문자열 연산에는 부적합함.(문자열 덧붙이기, 포맷 등)FText로컬라이제이션, UI용 문자열문자열 자체와 문화권별 번역 데이터를 포함하며 런타임 번역과 포맷을 지원함연산이 비교적 무거워 대량 문자열 연산에는 비추천함ANSICHAR/TCHAR 배열TCHAR*, A..

Unreal Engine 2025.08.29

[UE] 유효성 검사

순서IsValid란?IsValid 검사nullptr 검사IsValid와 nullptr 검사의 차이IsValid란?언리얼 엔진에서 제공하는 UObject 안전 검사 함수이다.단순히 포인터가 nullptr인지 뿐 아니라, UObject가 이미 Destroyed 상태인지까지 검사해줌. 즉 이 객체를 안전하게 접근할 수 있는지를 판단함.IsValid 검사포인터가 nullptr인지 검사UObject가 IsPendingKill() 상태인지 검사둘 다 아니라면 true 반환하며 하나라도 해당되면 false를 반환함nullptr 검사단순히 포인터 자체가 nullptr 상태인지 확인포인터가 메모리를 가리키고 있는지만 검사하기 때문에 이미 삭제된 객체라도 포인터가 남아 있으면 nullptr가 아니라 접근시 위험할 수 있음..

Unreal Engine 2025.08.29

[UE]TSubclassOf

순서TSubclassOf란?TSubclassOf 특TSubclassOf의 장단점TSubclassOf란?UE에서 클래스 타입을 안전하게 다루기 위한 템플릿 스마트 포인터TSubclassOf는 T타입을 상속한 클래스의 UClass 포인터만 가질 수 있는 템플릿 클래스이다. => 즉, 특정 부모 클래스의 서브클래스만 지정 가능하게 만들어줌.내부적으로 UClass*를 담고 있지만, 타입 체크가 컴파일/런타임에서 안전하게 이루어짐TSubclassOf 특징타입 안전특정 클래스 또는 특정 클래스의 서브클래스만 할당 가능함잘못된 타입을 할당하려고 하면 컴파일 에러 또는 런타임 체크 실패할 수 있음UClass 포인터 기반내부적으로는 UClass*를 가지고 있음필요시 .Get()으로 UClass*를 가져올 수 있음블루프린..

Unreal Engine 2025.08.29

[UE]StaticClass와 GetClass

순서UClass란?StaticClass란?GetClass란?블루프린트와의 관계StaticClass와 GetClass의 차이UClass란?언리얼 엔진에서 클래스에 대한 메타데이터와 리플렉션 정보를 담고 있는 객체즉, C++ 클래스의 타입 정보를 언리얼 런타임에서 다룰 수 있게 해주는 구조체 같은 것 StaticClass란?언리얼 빌드 과정(UHT)이 각 UClass에 대해 자동으로 생성하는 정적 함수로 해당 클레스의 UClass* 메타 객체를 반환함UHT가 각 UClass()에 대해 자동으로 생성함C++ 클래스의 UClass*를 반환함인스턴스 없이도 클래스 타입을 가리킬 수 있어 객체가 불필요함GetClass란?UObject의 인스턴스 메서드로, 현재 오브젝트가 어떤 클래스 타입인지 반환함.UObject의..

Unreal Engine 2025.08.29

[UE] 언리얼 빌드 툴/헤더 툴

순서빌드 툴(UBT)이란?헤더 툴(UHT)이란?빌드 파이프라인빌드 툴(UBT)이란?빌드 툴은 프로젝트 전체 빌드 관리를 담당함무엇을 하는가?C++ 소스 코드 컴파일 및 링크 과정을 제어하는 빌드 시스템.프로젝트의 .Build.cs 파일을 읽어서 모듈, 종속성, 빌드 설정 등을 해석Makefile 같은 역할을 한다고 생각하면 됨주요 기능소스 코드 컴파일 및 링크 관리(각 모듈 단위로 처리)필요한 경우 UHT 실행 > 리플렉션 메타데이터 생성플랫폼별/빌드 타입별 세팅 적용병렬 빌드, 캐시 활용으로 빌드 속도 최적화헤더 툴(UHT)이란?헤더 툴은 리플렉션 메타데이터 생성을 담당함무엇을 하는가?C++ 코드에서 UCLASS, USTRUCT, UENUM, UPROPERTY, UFUNCTION 등의 매크로를 파싱함...

Unreal Engine 2025.08.29

[UE]스마트 포인터

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

Unreal Engine 2025.08.29