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 "Weapon.h"
|
||||||
|
|
||||||
|
#include "Blaster/Character/BlasterCharacter.h"
|
||||||
#include "Components/SphereComponent.h"
|
#include "Components/SphereComponent.h"
|
||||||
|
#include "Components/WidgetComponent.h"
|
||||||
|
|
||||||
AWeapon::AWeapon()
|
AWeapon::AWeapon()
|
||||||
{
|
{
|
||||||
|
@ -11,7 +13,7 @@ AWeapon::AWeapon()
|
||||||
bReplicates = true;
|
bReplicates = true;
|
||||||
|
|
||||||
WeaponMesh = CreateDefaultSubobject<USkeletalMeshComponent>(TEXT("WeaponMesh"));
|
WeaponMesh = CreateDefaultSubobject<USkeletalMeshComponent>(TEXT("WeaponMesh"));
|
||||||
WeaponMesh->SetupAttachment(RootComponent);
|
WeaponMesh->SetupAttachment(WeaponMesh); // WeaponMesh instead?
|
||||||
|
|
||||||
SetRootComponent(WeaponMesh);
|
SetRootComponent(WeaponMesh);
|
||||||
|
|
||||||
|
@ -23,6 +25,9 @@ AWeapon::AWeapon()
|
||||||
AreaSphere->SetupAttachment(RootComponent);
|
AreaSphere->SetupAttachment(RootComponent);
|
||||||
AreaSphere->SetCollisionResponseToAllChannels(ECollisionResponse::ECR_Ignore);
|
AreaSphere->SetCollisionResponseToAllChannels(ECollisionResponse::ECR_Ignore);
|
||||||
AreaSphere->SetCollisionEnabled(ECollisionEnabled::NoCollision);
|
AreaSphere->SetCollisionEnabled(ECollisionEnabled::NoCollision);
|
||||||
|
|
||||||
|
PickupWidget = CreateDefaultSubobject<UWidgetComponent>(TEXT("PickupWidget"));
|
||||||
|
PickupWidget->SetupAttachment(RootComponent);
|
||||||
}
|
}
|
||||||
|
|
||||||
void AWeapon::BeginPlay()
|
void AWeapon::BeginPlay()
|
||||||
|
@ -33,7 +38,25 @@ void AWeapon::BeginPlay()
|
||||||
{
|
{
|
||||||
AreaSphere->SetCollisionEnabled(ECollisionEnabled::QueryAndPhysics);
|
AreaSphere->SetCollisionEnabled(ECollisionEnabled::QueryAndPhysics);
|
||||||
AreaSphere->SetCollisionResponseToChannel(ECollisionChannel::ECC_Pawn, ECollisionResponse::ECR_Overlap);
|
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:
|
protected:
|
||||||
virtual void BeginPlay() override;
|
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")
|
UPROPERTY(VisibleAnywhere, Category="Weapon Properties")
|
||||||
USkeletalMeshComponent* WeaponMesh;
|
USkeletalMeshComponent* WeaponMesh;
|
||||||
|
|
||||||
|
@ -37,7 +46,8 @@ private:
|
||||||
UPROPERTY(VisibleAnywhere)
|
UPROPERTY(VisibleAnywhere)
|
||||||
EWeaponState WeaponState;
|
EWeaponState WeaponState;
|
||||||
|
|
||||||
|
UPROPERTY(VisibleAnywhere, Category="Weapon Properties")
|
||||||
|
class UWidgetComponent* PickupWidget;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue