UE5/Attribute Menu
[UE5] 속성변경시 위젯에 즉시반영 구현
* 속성변경시 모든위젯에 방송떄림void UAttributeMenuWidgetController::BindCallbacksToDependencies(){ UAuraAttributeSet* AS = CastChecked(AttributeSet); //부모인 위젯컨트롤러가 갖고있음 for(auto& Pair : AS->TagsToAttributes) // 모든 속성들에대해(str,int...) { AbilitySystemComponent->GetGameplayAttributeValueChangeDelegate(Pair.Value()).AddLambda( //해당속성 : str,int에 대해 [this, Pair,AS](const FOnAttributeChangeData&..
[UE5] 속성행에 GE태그 연결, 속성추가시 AS코드만 수정 // 함수포인터 사용방법
* 각 속생행은 각각의 태그를 가져야함 이제 우리는 this.AttributeTag에 설정해준 태그를 얻을수 있다 * TextButtonRowButton 리팩토링 * 모든속성을 방송하기1. //아래코드에서 모든 속성에 대해 노가다 -> wtfvoid UAttributeMenuWidgetController::BroadcastInitialValues(){ UAuraAttributeSet* AS = CastChecked(AttributeSet); //부모인 위젯컨트롤러가 갖고있음 check(AttributeInfo) //DA가 set되었는지 확인 FAuraAttributeInfo Info = AttributeInfo->FindAttributeInfoForTag(FAuraGameplayTags:..
[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 정리
* 이전에 어떻게 했더라?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] 속성정보 관련(구조체,탐색) 클래스구현, 속성입력
* 할일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에서 태그추가-조회
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] 위젯에 실제 데이터 바인딩 설계
1. 방법1 : 특정속성 변경시 방송모델(DB)에 변경발생 -> ASC가 방송컨트롤러는 구독 -> 뷰(위젯)에 방송단점 : 새 속성추가시 일일히 델리게이트 추가해줘야함 2. 방법2 : 속성변경시 방송 + 태그 => 속성구별속성정보 구조체를 만듬 3. 흐름속성변경 --> 위젯컨트롤러 : 속성을 가져와, 태그가 뭔지 확인DT or Data Asset으로 저장 return struct 1. 속성이 변경되면, 방송을 수신할 컨트롤러필요2. 속상내 태그가 뭔지 알아내야함3. 태그를 받고, 속성을 반환할 데이터에셋필요4. 위젯에 방송, 위젯스스로 업데이트 * next_step