본문 바로가기

Unreal 5/메모장

(3)
[Unreal 5] Delegate 메모 공부하다가 자꾸 Delegate 원형을 까먹어서 쓴다. UPrimitiveComponent 클래스 정의를 보면, 아래와 같이 델리게이트가 만들어져 있는 것을 볼 수 있다. /** * Delegate for notification of blocking collision against a specific component. * NormalImpulse will be filled in for physics-simulating bodies, but will be zero for swept-component blocking collisions. */DECLARE_DYNAMIC_MULTICAST_SPARSE_DELEGATE_FiveParams( FComponentHitSignature, UPrimitiveCo..
[Unreal 5 UMG] CPP로 블루프린트 위젯 바인딩 하기 위젯 블루프린트를 작업하다 보면 CPP로 건드려야 하는 순간이 온다. 미리 정의되어있는 블루프린트 내의 위젯을 찾아서 동기화 하거나 아니면 미리 정의된 CPP를 기반으로 블루프린트를 만들어 위젯을 컨트롤 해야 하는 경우가 자주 있는데, 기본적으로는 위와 같이 리플렉션 매크로에 meta = (BindWidgetAnim) 키워드를 통해 위젯을 찾을 수 있다. 중요한 것은, 해당 멤버 변수의 이름이 반드시 블루프린트내의 위젯 이름과 동일해야 한다는 것이다. 즉, 이런 식으로 이름이 동일해야 제대로 찾을 수 있다. 바인드가 되었는지 안되었는지 확인하려면, 다시 블루프린트 에디터로 돌아가서 Hierarchy 패널 옆에 있는 Bind Widgets 에서 확인할 수 있다. (없으면 Windows → Bind Widg..
[Unreal 5] Class vs Component 언리얼 5에서 기능을 구현하는 방법은 여러 가지가 있습니다. 오늘은 그 중에서도 Class 에 직접 구현 vs Component 로 나누어 구현 두 방법을 언제 어떨때 써야 하는지 의문이 생기네요. 만약, NPC의 대화 기능을 구현한다고 생각해 봅시다. 아마도 Trigger Box 를 넣어 놓고, Overlap 을 활용하여 기능을 구현하게 될텐데 이를 구현하는 방법에는 NPC 클래스에 직접 멤버로 구현하여 사용을 하거나 TalkTriggerBox = CreateDefaultSubobject(TEXT("Talk Trigger Box")); 아니면 그러한 기능을 하는 컴포넌트를 만들고, 해당 컴포넌트를 원하는 액터에 부착할 수 있겠죠. UCLASS() class MYPROJECT_API UCR_Overlap..