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);
|
Super::Tick(DeltaTime);
|
||||||
|
|
||||||
AimOffset(DeltaTime);
|
AimOffset(DeltaTime);
|
||||||
|
HideCameraIfCharacterClose();
|
||||||
}
|
}
|
||||||
|
|
||||||
void ABlasterCharacter::SetupPlayerInputComponent(UInputComponent* PlayerInputComponent)
|
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)
|
void ABlasterCharacter::SetOverlappingWeapon(AWeapon* Weapon)
|
||||||
{
|
{
|
||||||
if (OverlappingWeapon)
|
if (OverlappingWeapon)
|
||||||
|
|
|
@ -69,6 +69,12 @@ private:
|
||||||
|
|
||||||
UPROPERTY(EditAnywhere, Category = Combat)
|
UPROPERTY(EditAnywhere, Category = Combat)
|
||||||
class UAnimMontage* FireWeaponMontage;
|
class UAnimMontage* FireWeaponMontage;
|
||||||
|
|
||||||
|
void HideCameraIfCharacterClose();
|
||||||
|
|
||||||
|
UPROPERTY(EditAnywhere)
|
||||||
|
float CameraThreshold = 200.f;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
void SetOverlappingWeapon(AWeapon* Weapon);
|
void SetOverlappingWeapon(AWeapon* Weapon);
|
||||||
bool IsWeaponEquipped();
|
bool IsWeaponEquipped();
|
||||||
|
|
|
@ -211,6 +211,11 @@ void UCombatComponent::TraceUnderCrosshairs(FHitResult& TraceHitResult)
|
||||||
if (bScreenToWorld)
|
if (bScreenToWorld)
|
||||||
{
|
{
|
||||||
FVector Start = CrosshairWorldPosition;
|
FVector Start = CrosshairWorldPosition;
|
||||||
|
if (Character)
|
||||||
|
{
|
||||||
|
float DistanceToCharacter = (Character->GetActorLocation() - Start).Size();
|
||||||
|
Start += CrosshairWorldDirection * (DistanceToCharacter + 60.f);
|
||||||
|
}
|
||||||
FVector End = Start + CrosshairWorldDirection * TRACE_LENGTH;
|
FVector End = Start + CrosshairWorldDirection * TRACE_LENGTH;
|
||||||
|
|
||||||
GetWorld()->LineTraceSingleByChannel(
|
GetWorld()->LineTraceSingleByChannel(
|
||||||
|
|
Loading…
Reference in New Issue