diff --git a/Config/DefaultInput.ini b/Config/DefaultInput.ini index 7821d03..fb7ccca 100644 --- a/Config/DefaultInput.ini +++ b/Config/DefaultInput.ini @@ -76,6 +76,7 @@ FOVScale=0.011110 DoubleClickTime=0.200000 +ActionMappings=(ActionName="Jump",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=SpaceBar) +ActionMappings=(ActionName="Equip",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=E) ++ActionMappings=(ActionName="Crouch",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=LeftControl) +AxisMappings=(AxisName="MoveForward",Scale=1.000000,Key=W) +AxisMappings=(AxisName="MoveForward",Scale=-1.000000,Key=S) +AxisMappings=(AxisName="MoveRight",Scale=1.000000,Key=D) diff --git a/Content/Blueprints/Character/Animation/BlasterAnimBP.uasset b/Content/Blueprints/Character/Animation/BlasterAnimBP.uasset index a430ecd..49f724f 100644 Binary files a/Content/Blueprints/Character/Animation/BlasterAnimBP.uasset and b/Content/Blueprints/Character/Animation/BlasterAnimBP.uasset differ diff --git a/Content/Blueprints/Character/BP_BlasterCharacter.uasset b/Content/Blueprints/Character/BP_BlasterCharacter.uasset index c16e1f9..f85c373 100644 Binary files a/Content/Blueprints/Character/BP_BlasterCharacter.uasset and b/Content/Blueprints/Character/BP_BlasterCharacter.uasset differ diff --git a/Source/Blaster/Character/BlasterAnimInstance.cpp b/Source/Blaster/Character/BlasterAnimInstance.cpp index 6f047e5..00f5385 100644 --- a/Source/Blaster/Character/BlasterAnimInstance.cpp +++ b/Source/Blaster/Character/BlasterAnimInstance.cpp @@ -31,4 +31,5 @@ void UBlasterAnimInstance::NativeUpdateAnimation(float DeltaSeconds) bIsInAir = BlasterCharacter->GetCharacterMovement()->IsFalling(); bIsAccelerating = BlasterCharacter->GetCharacterMovement()->GetCurrentAcceleration().Size() > 0.f; bWeaponEquipped = BlasterCharacter->IsWeaponEquipped(); + bIsCrouched = BlasterCharacter->bIsCrouched; } diff --git a/Source/Blaster/Character/BlasterAnimInstance.h b/Source/Blaster/Character/BlasterAnimInstance.h index ba39b87..58a3764 100644 --- a/Source/Blaster/Character/BlasterAnimInstance.h +++ b/Source/Blaster/Character/BlasterAnimInstance.h @@ -35,4 +35,7 @@ private: UPROPERTY(BlueprintReadOnly, Category="Movement", meta=(AllowPrivateAccess = "true")) bool bWeaponEquipped; + + UPROPERTY(BlueprintReadOnly, Category="Movement", meta=(AllowPrivateAccess = "true")) + bool bIsCrouched; }; diff --git a/Source/Blaster/Character/BlasterCharacter.cpp b/Source/Blaster/Character/BlasterCharacter.cpp index 0472da2..4fc45d9 100644 --- a/Source/Blaster/Character/BlasterCharacter.cpp +++ b/Source/Blaster/Character/BlasterCharacter.cpp @@ -33,6 +33,8 @@ ABlasterCharacter::ABlasterCharacter() Combat = CreateDefaultSubobject(TEXT("CombatComponent")); Combat->SetIsReplicated(true); + + GetCharacterMovement()->NavAgentProps.bCanCrouch = true; } void ABlasterCharacter::GetLifetimeReplicatedProps(TArray& OutLifetimeProps) const @@ -68,6 +70,7 @@ void ABlasterCharacter::SetupPlayerInputComponent(UInputComponent* PlayerInputCo PlayerInputComponent->BindAction("Jump", IE_Pressed, this, &ACharacter::Jump); PlayerInputComponent->BindAction("Equip", IE_Pressed, this, &ABlasterCharacter::EquipButtonPressed); + PlayerInputComponent->BindAction("Crouch", IE_Pressed, this, &ABlasterCharacter::CrouchButtonPressed); PlayerInputComponent->BindAxis("MoveForward", this, &ABlasterCharacter::MoveForward); PlayerInputComponent->BindAxis("MoveRight", this, &ABlasterCharacter::MoveRight); @@ -122,6 +125,18 @@ void ABlasterCharacter::EquipButtonPressed() } } +void ABlasterCharacter::CrouchButtonPressed() +{ + if (bIsCrouched) + { + UnCrouch(); + } + else + { + Crouch(); + } +} + void ABlasterCharacter::ServerEquipButtonPressed_Implementation() { EquipButtonPressed(); diff --git a/Source/Blaster/Character/BlasterCharacter.h b/Source/Blaster/Character/BlasterCharacter.h index a104766..d6427bd 100644 --- a/Source/Blaster/Character/BlasterCharacter.h +++ b/Source/Blaster/Character/BlasterCharacter.h @@ -26,6 +26,7 @@ protected: void Turn(float Value); void LookUp(float Value); void EquipButtonPressed(); + void CrouchButtonPressed(); private: UPROPERTY(VisibleAnywhere, Category="Camera")