ComboManagerComponent now detects if it's in the PlayerController, instead of the PlayerCharacter, since that makes a bit more sense.

This commit is contained in:
Jamie Greunbaum 2023-09-10 14:35:37 -04:00
parent cd4708449f
commit 90af002272

View File

@ -24,15 +24,14 @@ void UComboManagerComponent::BeginPlay()
{
Super::BeginPlay();
// If this component's owner is the player character, attach it to the subsystem.
ACharacter *PlayerCharacter = UGameplayStatics::GetPlayerCharacter(this, 0);
if (this->GetOwner() == PlayerCharacter)
// If this component's owner is the player character or controller, attach it to the subsystem.
APlayerController *PlayerController = UGameplayStatics::GetPlayerController(this, 0);
if (this->GetOwner() == PlayerController)
{
APlayerController *Controller = UGameplayStatics::GetPlayerController(this, 0);
UEnhancedInputComponent *InputComponent = Cast<UEnhancedInputComponent>(Controller->InputComponent);
checkf(Controller, TEXT("Discovered controller is not a %s type."), *UEnhancedInputComponent::StaticClass()->GetName());
UEnhancedInputComponent *InputComponent = Cast<UEnhancedInputComponent>(PlayerController->InputComponent);
checkf(InputComponent, TEXT("Discovered player input component is not of type %s."), *UEnhancedInputComponent::StaticClass()->GetName());
UInputBufferLocalPlayerSubsystem *InputBufferSubsystem = Controller->GetLocalPlayer()->GetSubsystem<UInputBufferLocalPlayerSubsystem>();
UInputBufferLocalPlayerSubsystem *InputBufferSubsystem = PlayerController->GetLocalPlayer()->GetSubsystem<UInputBufferLocalPlayerSubsystem>();
InputBufferSubsystem->AttachComboManager(this, InputComponent);
}
}