43 - Pickup Widget
This commit is contained in:
parent
4bf735ec9b
commit
7acda3fe1c
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -3,7 +3,9 @@
|
|||
|
||||
#include "Weapon.h"
|
||||
|
||||
#include "Blaster/Character/BlasterCharacter.h"
|
||||
#include "Components/SphereComponent.h"
|
||||
#include "Components/WidgetComponent.h"
|
||||
|
||||
AWeapon::AWeapon()
|
||||
{
|
||||
|
@ -11,9 +13,9 @@ AWeapon::AWeapon()
|
|||
bReplicates = true;
|
||||
|
||||
WeaponMesh = CreateDefaultSubobject<USkeletalMeshComponent>(TEXT("WeaponMesh"));
|
||||
WeaponMesh->SetupAttachment(RootComponent);
|
||||
WeaponMesh->SetupAttachment(WeaponMesh); // WeaponMesh instead?
|
||||
|
||||
SetRootComponent(WeaponMesh) ;
|
||||
SetRootComponent(WeaponMesh);
|
||||
|
||||
WeaponMesh->SetCollisionResponseToAllChannels(ECollisionResponse::ECR_Block);
|
||||
WeaponMesh->SetCollisionResponseToChannel(ECollisionChannel::ECC_Pawn, ECollisionResponse::ECR_Ignore);
|
||||
|
@ -23,6 +25,9 @@ AWeapon::AWeapon()
|
|||
AreaSphere->SetupAttachment(RootComponent);
|
||||
AreaSphere->SetCollisionResponseToAllChannels(ECollisionResponse::ECR_Ignore);
|
||||
AreaSphere->SetCollisionEnabled(ECollisionEnabled::NoCollision);
|
||||
|
||||
PickupWidget = CreateDefaultSubobject<UWidgetComponent>(TEXT("PickupWidget"));
|
||||
PickupWidget->SetupAttachment(RootComponent);
|
||||
}
|
||||
|
||||
void AWeapon::BeginPlay()
|
||||
|
@ -33,7 +38,25 @@ void AWeapon::BeginPlay()
|
|||
{
|
||||
AreaSphere->SetCollisionEnabled(ECollisionEnabled::QueryAndPhysics);
|
||||
AreaSphere->SetCollisionResponseToChannel(ECollisionChannel::ECC_Pawn, ECollisionResponse::ECR_Overlap);
|
||||
AreaSphere->OnComponentBeginOverlap.AddDynamic(this, &AWeapon::OnSphereOverlap);
|
||||
}
|
||||
|
||||
if (PickupWidget)
|
||||
{
|
||||
PickupWidget->SetVisibility(false);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void AWeapon::OnSphereOverlap(UPrimitiveComponent* OverlappedComponent,
|
||||
AActor* OtherActor,
|
||||
UPrimitiveComponent* OtherComp,
|
||||
int32 OtherBodyIndex,
|
||||
bool bFromSweep,
|
||||
const FHitResult& SweepResult)
|
||||
{
|
||||
ABlasterCharacter* BlasterCharacter = Cast<ABlasterCharacter>(OtherActor);
|
||||
if (BlasterCharacter && PickupWidget)
|
||||
{
|
||||
PickupWidget->SetVisibility(true);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -26,8 +26,17 @@ public:
|
|||
protected:
|
||||
virtual void BeginPlay() override;
|
||||
|
||||
private:
|
||||
UFUNCTION()
|
||||
virtual void OnSphereOverlap(
|
||||
UPrimitiveComponent* OverlappedComponent,
|
||||
AActor* OtherActor,
|
||||
UPrimitiveComponent* OtherComp,
|
||||
int32 OtherBodyIndex,
|
||||
bool bFromSweep,
|
||||
const FHitResult& SweepResult
|
||||
);
|
||||
|
||||
private:
|
||||
UPROPERTY(VisibleAnywhere, Category="Weapon Properties")
|
||||
USkeletalMeshComponent* WeaponMesh;
|
||||
|
||||
|
@ -37,7 +46,8 @@ private:
|
|||
UPROPERTY(VisibleAnywhere)
|
||||
EWeaponState WeaponState;
|
||||
|
||||
UPROPERTY(VisibleAnywhere, Category="Weapon Properties")
|
||||
class UWidgetComponent* PickupWidget;
|
||||
|
||||
public:
|
||||
|
||||
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue