87 - Extending the Trace Start
This commit is contained in:
parent
eeb7113a38
commit
5056862a83
|
@ -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)
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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(
|
||||
|
|
Loading…
Reference in New Issue