From 2ee75d30c4c5a4c5d08ed8ce1f52fa51d0d157fe Mon Sep 17 00:00:00 2001 From: BambiTheLama <92307273+BambiTheLama@users.noreply.github.com> Date: Wed, 4 Jun 2025 18:45:46 +0200 Subject: [PATCH] feat: Dialogue --- Content/Widget/WBP_PlayerUI.uasset | Bin 36538 -> 40354 bytes .../Private/Characters/ExoPlayerCharacter.cpp | 2 ++ Source/Exo/Private/Widget/WBP_PlayerUI.cpp | 28 ++++++++++++++++-- Source/Exo/Public/Widget/WBP_PlayerUI.h | 25 ++++++++++++---- 4 files changed, 48 insertions(+), 7 deletions(-) diff --git a/Content/Widget/WBP_PlayerUI.uasset b/Content/Widget/WBP_PlayerUI.uasset index be808688a8403b0f74d9cb41ce9b7e3b3ffeb1c3..9c6e2d46854d9628bc7f3d54ccf50fc7176b21cb 100644 GIT binary patch literal 40354 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 W3aQ9b#b*hVo4)@1kSK8s`2PonwSTk# literal 36538 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 diff --git a/Source/Exo/Private/Characters/ExoPlayerCharacter.cpp b/Source/Exo/Private/Characters/ExoPlayerCharacter.cpp index 0f2765e..6547be9 100644 --- a/Source/Exo/Private/Characters/ExoPlayerCharacter.cpp +++ b/Source/Exo/Private/Characters/ExoPlayerCharacter.cpp @@ -82,6 +82,8 @@ void AExoPlayerCharacter::BeginPlay() PlayerHud->SetVisibilityAmmo(false); PlayerHud->SetVisibilityViewFinder(false); PlayerHud->SetShootingViewFinder(false); + PlayerHud->SetVisibilityDialogue(false); + PlayerHud->SetDialogueText(FText::FromString(TEXT("Przykładowy tekst"))); } } } diff --git a/Source/Exo/Private/Widget/WBP_PlayerUI.cpp b/Source/Exo/Private/Widget/WBP_PlayerUI.cpp index b334c0d..d7cfdc6 100644 --- a/Source/Exo/Private/Widget/WBP_PlayerUI.cpp +++ b/Source/Exo/Private/Widget/WBP_PlayerUI.cpp @@ -39,6 +39,12 @@ void UWBP_PlayerUI::SetAmmoNumber(int ammo) AmmoText->SetText(FText::AsNumber(ammo)); } +void UWBP_PlayerUI::SetDialogueText(FText text) +{ + timerDialogue = 0.0f; + textDialogue = text; +} + UUWBP_Buf* UWBP_PlayerUI::AddBuf(UTexture2D* texture, float procent) { if (!BufClass) @@ -93,6 +99,11 @@ void UWBP_PlayerUI::SetShootingViewFinder(bool Shooting) shootingViewFinder=Shooting; } +void UWBP_PlayerUI::SetVisibilityDialogue(bool visibility) +{ + showDialogue=visibility; +} + void UWBP_PlayerUI::NativeTick(const FGeometry& MyGeometry, float InDeltaTime) { Super::NativeTick(MyGeometry, InDeltaTime); @@ -102,7 +113,17 @@ void UWBP_PlayerUI::NativeTick(const FGeometry& MyGeometry, float InDeltaTime) opacityViewFinder = FMath::Clamp(opacityViewFinder + showSpeed * (showViewFinder?1:-1), 0.0f, 1.0f); opacityBuf = FMath::Clamp(opacityBuf + showSpeed * (showBuf?1:-1), 0.0f, 1.0f); opacityAmmo = FMath::Clamp(opacityAmmo + showSpeed * (showAmmo?1:-1), 0.0f, 1.0f); + opacityDialogue = FMath::Clamp(opacityDialogue + showSpeed * (showDialogue?1:-1), 0.0f, 1.0f); shootingViewFinderPercent=FMath::Clamp(shootingViewFinderPercent + showSpeed * (shootingViewFinder?1:-1), 0.0f, 1.0f); + timerDialogue += DialogueSpeed * InDeltaTime; + + FString OriginalString = textDialogue.ToString(); + int textDialogueSize = OriginalString.Len() * FMath::Clamp(timerDialogue / DialogueSpeed, 0.0f, 1.0f); + FString Substring = OriginalString.Left(textDialogueSize); + FText text = FText::FromString(Substring); + + if (DialogueText) + DialogueText->SetText(text); if (HPBar) HPBar->SetRenderOpacity(opacityHp); if (ViewFinder) @@ -111,6 +132,8 @@ void UWBP_PlayerUI::NativeTick(const FGeometry& MyGeometry, float InDeltaTime) BufPanel->SetRenderOpacity(opacityBuf); if (AmmoImage) AmmoPanel->SetRenderOpacity(opacityAmmo); + if (DialoguePanel) + DialoguePanel->SetRenderOpacity(opacityDialogue); if (!DynamicViewFinderMaterial) { if (!ViewFinder) @@ -129,8 +152,9 @@ void UWBP_PlayerUI::NativeTick(const FGeometry& MyGeometry, float InDeltaTime) } if (DynamicViewFinderMaterial) { - DynamicViewFinderMaterial->SetScalarParameterValue("Percent",shootingViewFinderPercent); - ViewFinder->SetRenderScale(FVector2D(1.0f, 1.0f)*((1.0f-shootingViewFinderPercent)*3+1)); + float changeViewFinderProcent=FMath::Clamp( FMath::Pow(shootingViewFinderPercent,3),0,1.0f); + DynamicViewFinderMaterial->SetScalarParameterValue("Percent",changeViewFinderProcent); + ViewFinder->SetRenderScale(FVector2D(1.0f, 1.0f)*((1.0f-changeViewFinderProcent)*3+1)); } } diff --git a/Source/Exo/Public/Widget/WBP_PlayerUI.h b/Source/Exo/Public/Widget/WBP_PlayerUI.h index b3567ed..a2c089a 100644 --- a/Source/Exo/Public/Widget/WBP_PlayerUI.h +++ b/Source/Exo/Public/Widget/WBP_PlayerUI.h @@ -22,6 +22,8 @@ public: void SetAmmoNumber(int ammo); + void SetDialogueText(FText text); + UUWBP_Buf* AddBuf(UTexture2D* texture,float procent); UPROPERTY(EditAnywhere, meta = (BindWidget)) @@ -42,6 +44,12 @@ public: UPROPERTY(EditAnywhere, meta = (BindWidget)) class UCanvasPanel* AmmoPanel; + UPROPERTY(EditAnywhere, meta = (BindWidget)) + class UCanvasPanel* DialoguePanel; + + UPROPERTY(EditAnywhere, meta = (BindWidget)) + class UTextBlock* DialogueText; + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Buf") float BufRange; @@ -55,7 +63,10 @@ public: TMap AmmoIconMap; UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Display") - float DisplaySpeed=1.0f; + float DisplaySpeed = 1.0f; + + UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Display") + float DialogueSpeed = 0.1f; void SetVisibilityHP(bool visibility); @@ -66,6 +77,8 @@ public: void SetVisibilityViewFinder(bool visibility); void SetShootingViewFinder(bool Shooting); + + void SetVisibilityDialogue(bool visibility); protected: void NativeTick(const FGeometry& MyGeometry, float InDeltaTime) override; private: @@ -73,10 +86,12 @@ private: void updateBufPosition(); - bool showHp = true, showBuf = true, showAmmo = true, showViewFinder = true; - float opacityHp = 1.0f, opacityBuf = 1.0f, opacityAmmo = 1.0f, opacityViewFinder = 1.0f; - bool shootingViewFinder = false; - float shootingViewFinderPercent = 1.0f; + bool showHp = true, showBuf = true, showAmmo = true, showViewFinder = true, showDialogue = true; + float opacityHp = 1.0f, opacityBuf = 1.0f, opacityAmmo = 1.0f, opacityViewFinder = 1.0f, opacityDialogue = 1.0f; + bool shootingViewFinder = false; + float shootingViewFinderPercent = 1.0f; + float timerDialogue = 0.0f; + FText textDialogue = FText(); UMaterialInstanceDynamic* DynamicViewFinderMaterial = nullptr; };