81 - Drawing the Crosshairs

This commit is contained in:
Kingsmedia 2022-05-05 18:16:59 +02:00
parent 7127ade9ee
commit e75c93aeb4
3 changed files with 53 additions and 1 deletions

View File

@ -7,5 +7,54 @@ void ABlasterHUD::DrawHUD()
{
Super::DrawHUD();
FVector2D ViewportSize;
if (GEngine)
{
GEngine->GameViewport->GetViewportSize(ViewportSize);
const FVector2D ViewportCenter(ViewportSize.X / 2.f, ViewportSize.Y / 2.f);
if (HUDPackage.CrosshairsCenter)
{
DrawCrosshair(HUDPackage.CrosshairsCenter, ViewportCenter);
}
if (HUDPackage.CrosshairsLeft)
{
DrawCrosshair(HUDPackage.CrosshairsLeft, ViewportCenter);
}
if (HUDPackage.CrosshairsRight)
{
DrawCrosshair(HUDPackage.CrosshairsRight, ViewportCenter);
}
if (HUDPackage.CrosshairsTop)
{
DrawCrosshair(HUDPackage.CrosshairsTop, ViewportCenter);
}
if (HUDPackage.CrosshairsBottom)
{
DrawCrosshair(HUDPackage.CrosshairsBottom, ViewportCenter);
}
}
}
void ABlasterHUD::DrawCrosshair(UTexture2D* Texture, FVector2D ViewportCenter)
{
const float TextureWidth = Texture->GetSizeX();
const float TextureHeight = Texture->GetSizeY();
const FVector2D TextureDrawPoint(
ViewportCenter.X - (TextureWidth / 2.f),
ViewportCenter.Y - (TextureHeight / 2.f)
);
DrawTexture(
Texture,
TextureDrawPoint.X,
TextureDrawPoint.Y,
TextureWidth,
TextureHeight,
0.f,
0.f,
1.f,
1.f,
FLinearColor::White
);
}

View File

@ -33,6 +33,8 @@ public:
private:
FHUDPackage HUDPackage;
void DrawCrosshair(UTexture2D* Texture, FVector2D ViewportCenter);
public:
FORCEINLINE void SetHUDPackage(const FHUDPackage& Package) { HUDPackage = Package; };
};

View File

@ -14,6 +14,7 @@ ACasing::ACasing()
ShellEjectionImpulseMax = 12.f;
CasingMesh = CreateDefaultSubobject<UStaticMeshComponent>(TEXT("CasingMesh"));
CasingMesh->SetCollisionResponseToChannel(ECC_Camera, ECR_Ignore);
CasingMesh->SetCollisionResponseToChannel(ECC_Pawn, ECR_Ignore);
CasingMesh->SetSimulatePhysics(true);
CasingMesh->SetEnableGravity(true);
CasingMesh->SetNotifyRigidBodyCollision(true);