UE5

    [UE5] Attribute Info 델리게이트 // 위젯에 데이터 (속성명, 값) 연결하기

    [UE5] Attribute Info 델리게이트 // 위젯에 데이터 (속성명, 값) 연결하기

    * 우리는 구조체 정보를 방송할거임1. 델리게이트 선언(다이나믹 : BP에서 이용 / 멀티캐스트 : 다수에게방송)2. 델리게이트 변수로 선언#include "CoreMinimal.h"#include "UI/WidgetController/AuraWidgetController.h"#include "AttributeMenuWidgetController.generated.h"struct FAuraAttributeInfo;DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FAttributeInfoSignature, const FAuraAttributeInfo&, Info);/** * */UCLASS(BlueprintType, Blueprintable)class AURA_API UAt..

    [UE5] 메뉴 위젯 컨트롤러 구현, BP내 사용가능한 위젯컨트롤러 게터 만들기, BP 상속안될때 해결방법, MVC 정리

    [UE5] 메뉴 위젯 컨트롤러 구현, BP내 사용가능한 위젯컨트롤러 게터 만들기, BP 상속안될때 해결방법, MVC 정리

    * 이전에 어떻게 했더라?HUD에서 위젯컨트롤러를 가지고있고,Getter도 가지고 있음이를 따라할것임class AURA_API AAuraHUD : public AHUD{ GENERATED_BODY()public: UPROPERTY() TObjectPtr OverlayWidget; //Getter임 UOverlayWidgetController* GetOverlayWidgetController(const FWidgetControllerParams& WCParams); void InitOverlay(APlayerController* PC, APlayerState* PS , UAbilitySystemComponent* ASC, UAttributeSet* AS);protected..

    [UE5] 속성정보 관련(구조체,탐색) 클래스구현, 속성입력

    [UE5] 속성정보 관련(구조체,탐색) 클래스구현, 속성입력

    * 할일1번은했고, 2-3번을 하면됨 * 속성정보를 저장하는 구조체 만들기 => 속성이 변경되면, 이 구조체 객체를 BP로 브로드캐스팅할거임// Fill out your copyright notice in the Description page of Project Settings.#pragma once#include "CoreMinimal.h"#include "GameplayTagContainer.h"#include "Engine/DataAsset.h"#include "AttributeInfo.generated.h"USTRUCT(BlueprintType)struct FAuraAttributeInfo{ GENERATED_BODY() UPROPERTY(EditDefaultsOnly, Blueprin..

    [UE5] 위젯에 실제 데이터 바인딩 구현1, cpp에서 태그추가-조회

    [UE5] 위젯에 실제 데이터 바인딩 구현1, cpp에서 태그추가-조회

    1. GETag 저장용 클래스생성(싱글톤)싱글톤만드는법 : static getter, setter 만듬// Fill out your copyright notice in the Description page of Project Settings.#pragma once#include "CoreMinimal.h"#include "GameplayTagContainer.h"/** * AuraGameplayTags * * 싱글톤, 포함하는 native GETags */struct FAuraGameplayTags{public: static const FAuraGameplayTags& Get(){ return GameplayTags; } static void InitializeNativeGameplayTags(); //..

    [UE5] 위젯에 실제 데이터 바인딩 설계

    [UE5] 위젯에 실제 데이터 바인딩 설계

    1. 방법1 : 특정속성 변경시 방송모델(DB)에 변경발생 -> ASC가 방송컨트롤러는 구독 -> 뷰(위젯)에 방송단점 : 새 속성추가시 일일히 델리게이트 추가해줘야함 2. 방법2 : 속성변경시 방송 + 태그 => 속성구별속성정보 구조체를 만듬 3. 흐름속성변경 --> 위젯컨트롤러 : 속성을 가져와, 태그가 뭔지 확인DT or Data Asset으로 저장 return struct 1. 속성이 변경되면, 방송을 수신할 컨트롤러필요2. 속상내 태그가 뭔지 알아내야함3. 태그를 받고, 속성을 반환할 데이터에셋필요4. 위젯에 방송, 위젯스스로 업데이트 * next_step

    [UE5] 버튼클릭시, 속성위젯 띄우기 구현 // 위젯위치 조정방법

    [UE5] 버튼클릭시, 속성위젯 띄우기 구현 // 위젯위치 조정방법

    1. 예외처리 : 버튼클릭되면, 속성버튼을 누를수 없어야함(버튼비활성화) 2. 클릭하면, 속성위젯을 만들고 띄워야함*해결 : 속성위젯을 오버레이로 감싸면됨! * Close 버튼 작동구현*문제 : 제거후, 속성버튼 활성화 시켜줘야함* 해결 1 : 오버레이에서 속성위젯을 사용 -> 상호의존(-)* 해결 2 : 델리게이트로 구독함 -> 단방향 의존성 -> good구독중인 클래스들에서는, 콜을 받으면 이벤트 실행되도록* 문제 : 매번 위젯을 새로생성하고 있음but, 위젯하나 생성은 그렇게 비싼 작업이아님.* 해결  : 생성대신, 숨기는것으로 해결할수 있음

    [UE5] 속성메뉴 설계, 속성위젯 디자인 구현

    [UE5] 속성메뉴 설계, 속성위젯 디자인 구현

    1.AuraUserWidget 상속받은 WBP_프레임 만들기 2. 아래 위젯 만들기3. WBP_TextButtonRow 만들기 4. 아래 전체위젯 만들기   5. 위의 버튼을 클래스로 만들어버리기 이 버튼을 활용해서 메뉴를 닫을수있고, 열수도 있다! * 버튼 활용 예시  * 버튼상속받은 넓은버튼 만들기 * 오버레이에 와이드버튼 추가 * 버튼클릭하면, 속성위젯표시 구현 다음수업에서..