스탯이 이제 stats와 동기화됩니다.

This commit is contained in:
2023-10-08 05:12:55 +09:00
parent 52e4c37ee5
commit 69852b9541
7 changed files with 32 additions and 21 deletions

View File

@@ -24,16 +24,9 @@ ADefaultPlayerCharacter::ADefaultPlayerCharacter()
Camera = CreateDefaultSubobject<UCameraComponent>(TEXT("Camera"));
Camera->SetupAttachment(CameraSpringArm, USpringArmComponent::SocketName);
const UEnum* CharStateEnum = FindObject<UEnum>(ANY_PACKAGE, TEXT("EStats"), true);
if (!CharStateEnum)
{
UE_LOG(LogTemp, Error, TEXT("EStats Missing"));
return;
}
for (uint8 i = 0; i < (uint8)EStats::SIZE; i++)
DefaultStats.Add(*CharStateEnum->GetNameByValue((uint8)i).ToString(), 0.0f);
DefaultStats.Add((EStats)i, 0.0f);
for (uint8 i = 0; i < (uint8)CooldownType::SIZE; i++)
CooldownDuration.Add((CooldownType)i, 0.0f);

View File

@@ -90,7 +90,7 @@ public:
void NetMulticast_Skill7();
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Stats")
TMap<FName, float> DefaultStats;
TMap<EStats, float> DefaultStats;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Stats")
TMap<CooldownType, float> CooldownDuration;

View File

@@ -20,12 +20,10 @@ void ADefaultPlayerController::BeginPlay()
ULocalPlayer* LocalPlayer = Cast<ULocalPlayer>(Player);
if (!LocalPlayer) return;
UEnhancedInputLocalPlayerSubsystem* InputSystem = LocalPlayer->GetSubsystem<UEnhancedInputLocalPlayerSubsystem>();
if (!InputSystem) return;
ADefaultPlayerCharacter* ControlledPawn = GetPawn<ADefaultPlayerCharacter>();
if (!ControlledPawn) return;
ADefaultPlayerState* MyPlayerState = GetPlayerState<ADefaultPlayerState>();
if (!MyPlayerState) return;
if (PlayerInputMapping.IsNull())
{
UE_LOG(LogTemp, Error, TEXT("AddMappingContext Failed"));
@@ -34,7 +32,6 @@ void ADefaultPlayerController::BeginPlay()
InputSystem->AddMappingContext(PlayerInputMapping.LoadSynchronous(), 0);
this->bShowMouseCursor = true;
//MyPlayerState->InitPlayerStats(ControlledPawn->DefaultStats, ControlledPawn->CooldownDuration);
}
void ADefaultPlayerController::OnPossess(APawn* aPawn)
@@ -53,6 +50,20 @@ void ADefaultPlayerController::OnPossess(APawn* aPawn)
SetViewTarget(PlayerCamera);
UE_LOG(LogTemp, Warning, TEXT("SetViewTarget Success : %s"), *GetPlayerState<ADefaultPlayerState>()->GetPlayerCamera()->GetName());
ADefaultPlayerCharacter* ControlledPawn = GetPawn<ADefaultPlayerCharacter>();
if (!ControlledPawn) return;
ADefaultPlayerState* MyPlayerState = GetPlayerState<ADefaultPlayerState>();
if (!MyPlayerState) return;
TArray<float> DefaultStatsValue;
TArray<float> CooldownDurationValue;
ControlledPawn->DefaultStats.GenerateValueArray(DefaultStatsValue);
ControlledPawn->CooldownDuration.GenerateValueArray(CooldownDurationValue);
MyPlayerState->InitPlayerStats(DefaultStatsValue, CooldownDurationValue);
}
void ADefaultPlayerController::OnUnPossess()

View File

@@ -31,6 +31,13 @@ void ADefaultPlayerState::InitPlayerStats_Implementation(const TArray<float>& St
MaxStats.Append(StatsValue);
Stats.Append(StatsValue);
CooldownDuration.Append(CooldownDurationValue);
MaxCooldownDuration.Append(CooldownDurationValue);
for (float Value : StatsValue)
{
UE_LOG(LogTemp, Warning, TEXT("Values: %f"), Value);
}
}
void ADefaultPlayerState::NetMulticast_SetAttackType_Implementation(CooldownType Value)