| 접두어 | 의미 | 예시 |
|---|---|---|
U | UObject 기반 클래스 | UActorComponent, UStaticMesh |
A | Actor 기반 클래스 | ACharacter, AWeapon |
F | 구조체 (struct) | FVector, FName, FTransform |
I | 인터페이스 (interface) | IInteractable, IDamageable |
E | 열거형 (enum) | EWeaponType, EMovementMode |
T | 템플릿 클래스 (컨테이너) | TArray, TMap, TSet |
void AWeapon::BeginPlay()
{
Super::BeginPlay();
OnActorBeginOverlap.AddDynamic(this, &AWeapon::OnWeaponBeginOverlap);
}
OnActorBeginOverlap은 델리게이트 변수라서 직접 호출하거나 편집 불가.
BeginPlay()에서 OnActorBeginOverlap에 특정 함수를 바인딩해주면 충돌할 때 그 함수 호출
UFUNCTION()
void OnWeaponBeginOverlap(AActor* OverlappedActor, AActor* OtherActor);
OverlappedActor : overlap 당한 액터 (이 함수 갖고 있는 놈)
OtherActor : overlap 한 액터 (와서 충돌한 놈)
UFUNCTION 핸들러를 런타임 델리게이트에 리플렉션 기반으로 바인딩.
블루프린트와의 연결, GC 관리가 필요할 때 필수.
그냥 핸들러 바인딩이라고 보면 되지만, 리플렉션 시스템 때문에 일반 C++ 델리게이트보다 더 무겁다.
| 타입 | 특징 | 예시 |
|---|---|---|
FString | 일반 문자열 (변경 가능, 메모리 많이 씀) | FString MyName = "Hello"; |
FText | 로컬라이징 지원 문자열 (UI 텍스트 전용) | FText MyText = FText::FromString("Hello"); |
FName | 고정 이름 (빠르고 메모리 효율 높음, 변경 불가) | FName MyTag = "EnemyTag"; |
FName은 문자열을 직접 비교하지 않고, 내부적으로 이름 해시 테이블의 인덱스(정수)로 비교
소켓 이름 지정할 때 FName 사용
액터 또는 컴포넌트를 다른 컴포넌트에 부착(Attach)할 때 부착 방식(트랜스폼 동기화 방식)을 정의하는 구조체
| 옵션 | 의미 |
|---|---|
KeepRelativeTransform | 현재 상대 트랜스폼을 유지하면서 부착. (기존 위치 그대로 유지) |
KeepWorldTransform | 현재 월드 트랜스폼 유지. (월드 좌표에서 그대로 유지됨) |
SnapToTargetNotIncludingScale | 대상 소켓의 위치, 회전만 따라감. 스케일은 현재 스케일 유지. |
SnapToTargetIncludingScale | 대상 소켓의 위치, 회전, 스케일까지 모두 따라감. (가장 강력한 동기화) |


눈 그리기 무한 리트 중