언리얼 114

GameplayAbilitySystem을 이용한 RPG 프로젝트 - (27) OverlayWidgetController 리팩토링

이번 포스트에서는 기존에 사용하던 WidgetController의 코드를 리팩토링하겠습니다.이전의 WidgetController는 Attribute 별로 델리게이트가 존재하고,델리게이트 별로 연결하는 콜백함수가 따로 존재하였습니다.  하지만, 생각해보면 위의 로직은 Attribute가 변경될 때마다 호출되고,float값을 인자로 사용한다는 공통점이 존재합니다.따라서 델리게이트를 하나로 묶어 관리하면Attribute가 추가될 때마다 델리게이트를 만들지 않아도 되고또 콜백함수가 아닌 람다를 사용하면 불필요한 콜백함수를 선언 + 정의할 필요도 없어집니다.따라서 다음과 같이 코드를 수정하겠습니다. 1) AuraOverlayWdigetControllerDECLARE_DYNAMIC_MULTICAST_DELEGATE..

GameplayAbilitySystem을 이용한 RPG 프로젝트 - (26) 메세지를 위한 전용 UI 만들기

이번 포스트에서는 이전까지 화면에 띄우기만 한 Tag별 메세지를 전용 UI를 만들어 프로젝트에서 사용해보겠습니다. 1) WBP_EffectMessage AuraUserWidget을 상속받은 새로운 위젯 블루 프린트를 생성합니다.해당 위젯의 계층 구조는 다음과 같습니다. 또, Image와 Text에는 애니메이션을 추가하여 UI로서의 효과를 추가하였습니다. 사용하는 함수는 다음과 같습니다.우선, Event Graph에서 다음의 멤버 함수를 추가합니다. DestroyDelay는 0.5초 뒤에 메세지 위젯을 파괴합니다.이후 외부에서 사용할 함수를 정의합니다. SetImageandText 함수는 인자로 Image와 Text를 받습니다.우선, Text를 SetText로 TextMessage 변수에 저장합니다.그리고..

GameplayAbilitySystem을 이용한 RPG 프로젝트 - (25) Data Table을 활용하여 GE별 메세지 출력하기

이번 포스트에서는 이전에 만든 Data Table을 활용하여GE가 발동된 경우, GameplayTag 그 자체를 출력하는 것이 아닌GameplayTag 별 메세지를 출력하도록 수정해보겠습니다. 1) DT_MessageWidgetData기존에 만든 DataTable을 다음과 같이 수정했습니다. 이제 DataTable에 저장된 정보대로 Message Tag와 GE의 GameplayTag를 대조하여 Message를 출력하게 됩니다.따라서 이전에 만든 GE들의 태그를 Message Tag와 동일하게 변경해줘야 합니다. 2) 이전에 만든 GE 블루프린트 이전에 만든 4개의 GE 블루 프린트 모두 위와 같이 Message 태그를 갖도록 설정하였습니다.이제 C++ 스크립트에서 몇 가지 수정을 해줘야 합니다. 3) A..