87 - Extending the Trace Start

This commit is contained in:
Kingsmedia 2022-05-05 23:03:09 +02:00
parent eeb7113a38
commit 5056862a83
3 changed files with 32 additions and 0 deletions

View File

@ -86,6 +86,7 @@ void ABlasterCharacter::Tick(float DeltaTime)
Super::Tick(DeltaTime);
AimOffset(DeltaTime);
HideCameraIfCharacterClose();
}
void ABlasterCharacter::SetupPlayerInputComponent(UInputComponent* PlayerInputComponent)
@ -290,6 +291,26 @@ void ABlasterCharacter::TurnInPlace(float DeltaTime)
}
}
void ABlasterCharacter::HideCameraIfCharacterClose()
{
if (!IsLocallyControlled()) return;
if((FollowCamera->GetComponentLocation() - GetActorLocation()).Size() < CameraThreshold)
{
GetMesh()->SetVisibility(false);
if (Combat && Combat->EquippedWeapon && Combat->EquippedWeapon->GetWeaponMesh())
{
Combat->EquippedWeapon->GetWeaponMesh()->bOwnerNoSee = true;
}
} else
{
GetMesh()->SetVisibility(true);
if (Combat && Combat->EquippedWeapon && Combat->EquippedWeapon->GetWeaponMesh())
{
Combat->EquippedWeapon->GetWeaponMesh()->bOwnerNoSee = false;
}
}
}
void ABlasterCharacter::SetOverlappingWeapon(AWeapon* Weapon)
{
if (OverlappingWeapon)

View File

@ -69,6 +69,12 @@ private:
UPROPERTY(EditAnywhere, Category = Combat)
class UAnimMontage* FireWeaponMontage;
void HideCameraIfCharacterClose();
UPROPERTY(EditAnywhere)
float CameraThreshold = 200.f;
public:
void SetOverlappingWeapon(AWeapon* Weapon);
bool IsWeaponEquipped();

View File

@ -211,6 +211,11 @@ void UCombatComponent::TraceUnderCrosshairs(FHitResult& TraceHitResult)
if (bScreenToWorld)
{
FVector Start = CrosshairWorldPosition;
if (Character)
{
float DistanceToCharacter = (Character->GetActorLocation() - Start).Size();
Start += CrosshairWorldDirection * (DistanceToCharacter + 60.f);
}
FVector End = Start + CrosshairWorldDirection * TRACE_LENGTH;
GetWorld()->LineTraceSingleByChannel(