* 캐릭정보 DA 만들기
설계에 맞춰 구현
// Fill out your copyright notice in the Description page of Project Settings.
#pragma once
#include "CoreMinimal.h"
#include "Engine/DataAsset.h"
#include "CharacterClassInfo.generated.h"
class UGameplayEffect;
UENUM(BlueprintType)
enum class ECharacterClass : uint8 //캐릭구분용
{
Elementalist, //0
Warrior, //1
Ranger //2
};
USTRUCT(BlueprintType)
struct FCharacterClassDefaultInfo
{
GENERATED_BODY()
UPROPERTY(EditDefaultsOnly, Category="Class Defaults")
TSubclassOf<UGameplayEffect> PrimaryAttributes; //그 캐릭터만의 고유속성
};
/**
*
*/
UCLASS()
class AURA_API UCharacterClassInfo : public UDataAsset
{
GENERATED_BODY()
public:
UPROPERTY(EditDefaultsOnly, Category="Character Class Defaults") //<캐릭터, 정보> 맵
TMap<ECharacterClass, FCharacterClassDefaultInfo> CharacterClassInformation;
//공통속성
UPROPERTY(EditDefaultsOnly, Category="Common Class Defaults")
TSubclassOf<UGameplayEffect> SecondaryAttributes;
UPROPERTY(EditDefaultsOnly, Category="Common Class Defaults")
TSubclassOf<UGameplayEffect> VitalAttributes;
FCharacterClassDefaultInfo GetClassDefaultInfo(ECharacterClass CharacterClass); //@Getter
};
FCharacterClassDefaultInfo UCharacterClassInfo::GetClassDefaultInfo(ECharacterClass CharacterClass)
{
return CharacterClassInformation.FindChecked(CharacterClass); //map.find(key)
}
* GE 만들기
* 커브테이블 만들기 =>
* 전사, 레인저도 또 노가다? ㅇㅇ, csv - json 으로 만들어볼거임
- JSON 으로 내보내고 실습
* 생각 : Second속성은 무한효과로 만들었음 => 런타임중 계속 변화
but, 적은 고정속성을 사용할것임.
'UE5 > RPG Character 타입' 카테고리의 다른 글
[UE5] RPG 캐릭터 클래스 퀴즈 (0) | 2024.06.21 |
---|