Hi guys,
I have a local multiplayer game, after spawning two players using:
UGameplayStatics::CreatePlayer(World, -1, true);
I noticed that the movement works correctly, but one of the players can only perform their binded actions when the other player is doing so. e.g. Player 1 is attacking, if player 2 presses their attack button they will attack, but the moment Player 1 stops attacking player 2 cannot attack. It is noticeable that even if player 2 is pressing the alternative attack they will perform the same attack as player 1.
Now i assume that for each player my ACharacter subclass is spawned, so i have no idea why this would be the case. My code for binding is as follows:
void AIGCCharacter::SetupPlayerInputComponent(class UInputComponent* PlayerInputComponent)
{
// Set up gameplay key bindings
check(PlayerInputComponent);
PlayerInputComponent->BindAxis("MoveForward", this, &AIGCCharacter::MoveForward);
PlayerInputComponent->BindAxis("MoveRight", this, &AIGCCharacter::MoveRight);
PlayerInputComponent->BindAction("AttackLeft", IE_Pressed, this, &AIGCCharacter::AttackInputLeft);
PlayerInputComponent->BindAction("AttackRight", IE_Pressed, this, &AIGCCharacter::AttackInputRight);
PlayerInputComponent->BindAction("AttackLeft", IE_Released, this, &AIGCCharacter::AttackLeftEnd);
PlayerInputComponent->BindAction("AttackRight", IE_Released, this, &AIGCCharacter::AttackRightEnd);
PlayerInputComponent->BindAction("Dash",IE_Pressed, this, &AIGCCharacter::PerformDash);
PlayerInputComponent->BindAction("Dash", IE_Released, this, &AIGCCharacter::DashEnd);
// "turnrate" is for devices that we choose to treat as a rate of change, such as an analog joystick
PlayerInputComponent->BindAxis("TurnRate", this, &AIGCCharacter::TurnAtRate);
}
Any help would be appreciated.