250514

lililllilillll·2025년 5월 14일

개발 일지

목록 보기
171/350

✅ What I did today


  • C++ 스크립트를 활용한 언리얼 엔진 5 게임 개발
  • Shorts :: S002 : Day 1
  • Art Practice : Drawing


📖 C++ 스크립트를 활용한 언리얼 엔진 5 게임 개발


접두어의미예시
UUObject 기반 클래스UActorComponent, UStaticMesh
AActor 기반 클래스ACharacter, AWeapon
F구조체 (struct)FVector, FName, FTransform
I인터페이스 (interface)IInteractable, IDamageable
E열거형 (enum)EWeaponType, EMovementMode
T템플릿 클래스 (컨테이너)TArray, TMap, TSet

Overlap

void AWeapon::BeginPlay()
{
	Super::BeginPlay();
	
	OnActorBeginOverlap.AddDynamic(this, &AWeapon::OnWeaponBeginOverlap);
}

OnActorBeginOverlap은 델리게이트 변수라서 직접 호출하거나 편집 불가.
BeginPlay()에서 OnActorBeginOverlap에 특정 함수를 바인딩해주면 충돌할 때 그 함수 호출

UFUNCTION()
void OnWeaponBeginOverlap(AActor* OverlappedActor, AActor* OtherActor);

OverlappedActor : overlap 당한 액터 (이 함수 갖고 있는 놈)
OtherActor : overlap 한 액터 (와서 충돌한 놈)

AddDynamic

UFUNCTION 핸들러를 런타임 델리게이트에 리플렉션 기반으로 바인딩.
블루프린트와의 연결, GC 관리가 필요할 때 필수.
그냥 핸들러 바인딩이라고 보면 되지만, 리플렉션 시스템 때문에 일반 C++ 델리게이트보다 더 무겁다.

FString, FText, FName

타입특징예시
FString일반 문자열 (변경 가능, 메모리 많이 씀)FString MyName = "Hello";
FText로컬라이징 지원 문자열 (UI 텍스트 전용)FText MyText = FText::FromString("Hello");
FName고정 이름 (빠르고 메모리 효율 높음, 변경 불가)FName MyTag = "EnemyTag";

FName은 문자열을 직접 비교하지 않고, 내부적으로 이름 해시 테이블의 인덱스(정수)로 비교
소켓 이름 지정할 때 FName 사용

FAttachmentTransformRules

액터 또는 컴포넌트를 다른 컴포넌트에 부착(Attach)할 때 부착 방식(트랜스폼 동기화 방식)을 정의하는 구조체

옵션의미
KeepRelativeTransform현재 상대 트랜스폼을 유지하면서 부착. (기존 위치 그대로 유지)
KeepWorldTransform현재 월드 트랜스폼 유지. (월드 좌표에서 그대로 유지됨)
SnapToTargetNotIncludingScale대상 소켓의 위치, 회전만 따라감. 스케일은 현재 스케일 유지.
SnapToTargetIncludingScale대상 소켓의 위치, 회전, 스케일까지 모두 따라감. (가장 강력한 동기화)


🕹️ Shorts :: S002 : Day 1


  • 스프라이트 작업
  • 대각선 이동
  • 들어올 때 점프


🎨 Art Practice : Drawing


눈 그리기 무한 리트 중



profile
너 정말 **핵심**을 찔렀어

0개의 댓글