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,18 +3,20 @@
|
|||
|
||||
#include "Weapon.h"
|
||||
|
||||
#include "Blaster/Character/BlasterCharacter.h"
|
||||
#include "Components/SphereComponent.h"
|
||||
#include "Components/WidgetComponent.h"
|
||||
|
||||
AWeapon::AWeapon()
|
||||
{
|
||||
PrimaryActorTick.bCanEverTick = false;
|
||||
bReplicates = true;
|
||||
|
||||
WeaponMesh = CreateDefaultSubobject<USkeletalMeshComponent>(TEXT("WeaponMesh"));
|
||||
WeaponMesh->SetupAttachment(RootComponent);
|
||||
|
||||
SetRootComponent(WeaponMesh) ;
|
||||
|
||||
WeaponMesh = CreateDefaultSubobject<USkeletalMeshComponent>(TEXT("WeaponMesh"));
|
||||
WeaponMesh->SetupAttachment(WeaponMesh); // WeaponMesh instead?
|
||||
|
||||
SetRootComponent(WeaponMesh);
|
||||
|
||||
WeaponMesh->SetCollisionResponseToAllChannels(ECollisionResponse::ECR_Block);
|
||||
WeaponMesh->SetCollisionResponseToChannel(ECollisionChannel::ECC_Pawn, ECollisionResponse::ECR_Ignore);
|
||||
WeaponMesh->SetCollisionEnabled(ECollisionEnabled::NoCollision);
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -19,15 +19,24 @@ UCLASS()
|
|||
class BLASTER_API AWeapon : public AActor
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
public:
|
||||
|
||||
public:
|
||||
AWeapon();
|
||||
|
||||
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;
|
||||
|
||||
|
@ -36,8 +45,9 @@ private:
|
|||
|
||||
UPROPERTY(VisibleAnywhere)
|
||||
EWeaponState WeaponState;
|
||||
|
||||
public:
|
||||
|
||||
UPROPERTY(VisibleAnywhere, Category="Weapon Properties")
|
||||
class UWidgetComponent* PickupWidget;
|
||||
|
||||
public:
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue