Updated Dialogue for User Experience Improvements
In dialogue make arrow only appear when the animation is finished, Made things Bigger
This commit is contained in:
parent
487c46d7b8
commit
6d8a4c82b0
BIN
Content/Dialogue/TextPrompt.uasset
(Stored with Git LFS)
BIN
Content/Dialogue/TextPrompt.uasset
(Stored with Git LFS)
Binary file not shown.
@ -50,12 +50,13 @@ void UDialogueNPC::BeginPlay()
|
|||||||
|
|
||||||
void UDialogueNPC::NextDialogue()
|
void UDialogueNPC::NextDialogue()
|
||||||
{
|
{
|
||||||
if (NextArrow->GetVisibility() == ESlateVisibility::Hidden) return;
|
if (Choice1Button->GetVisibility() == ESlateVisibility::Visible) return;
|
||||||
//Dialogue Skip
|
//Dialogue Skip
|
||||||
if (CurrentDialogue.Len() < CurrentDialogueStringPath[DialogueIndex].Len())
|
if (CurrentDialogue.Len() < CurrentDialogueStringPath[DialogueIndex].Len())
|
||||||
{
|
{
|
||||||
CurrentDialogue = CurrentDialogueStringPath[DialogueIndex];
|
CurrentDialogue = CurrentDialogueStringPath[DialogueIndex];
|
||||||
DialogueText->SetText(FText::FromString(CurrentDialogue));
|
DialogueText->SetText(FText::FromString(CurrentDialogue));
|
||||||
|
NextArrow->SetVisibility(ESlateVisibility::SelfHitTestInvisible);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (CurrentDialogueStringPath[FMath::Clamp(DialogueIndex + 1, 0, CurrentDialogueStringPath.Num() - 1)].Mid(0, 2) == "##")
|
if (CurrentDialogueStringPath[FMath::Clamp(DialogueIndex + 1, 0, CurrentDialogueStringPath.Num() - 1)].Mid(0, 2) == "##")
|
||||||
@ -65,6 +66,7 @@ void UDialogueNPC::NextDialogue()
|
|||||||
}
|
}
|
||||||
|
|
||||||
DialogueIndex++;
|
DialogueIndex++;
|
||||||
|
NextArrow->SetVisibility(ESlateVisibility::Hidden);
|
||||||
if (DialogueIndex >= CurrentDialogueStringPath.Num())
|
if (DialogueIndex >= CurrentDialogueStringPath.Num())
|
||||||
{
|
{
|
||||||
if (CurrentDialoguePath->Choices.IsEmpty())
|
if (CurrentDialoguePath->Choices.IsEmpty())
|
||||||
@ -92,6 +94,7 @@ void UDialogueNPC::NextCharacter()
|
|||||||
CurrentDialogue.AppendChar(CurrentDialogueStringPath[DialogueIndex][CurrentDialogue.Len()]);
|
CurrentDialogue.AppendChar(CurrentDialogueStringPath[DialogueIndex][CurrentDialogue.Len()]);
|
||||||
DialogueText->SetText(FText::FromString(CurrentDialogue));
|
DialogueText->SetText(FText::FromString(CurrentDialogue));
|
||||||
}
|
}
|
||||||
|
else NextArrow->SetVisibility(ESlateVisibility::SelfHitTestInvisible);
|
||||||
}
|
}
|
||||||
|
|
||||||
void UDialogueNPC::ResetDialogueUI()
|
void UDialogueNPC::ResetDialogueUI()
|
||||||
@ -103,7 +106,7 @@ void UDialogueNPC::ResetDialogueUI()
|
|||||||
Choice1Button->SetVisibility(ESlateVisibility::Hidden);
|
Choice1Button->SetVisibility(ESlateVisibility::Hidden);
|
||||||
Choice2Button->SetVisibility(ESlateVisibility::Hidden);
|
Choice2Button->SetVisibility(ESlateVisibility::Hidden);
|
||||||
Choice3Button->SetVisibility(ESlateVisibility::Hidden);
|
Choice3Button->SetVisibility(ESlateVisibility::Hidden);
|
||||||
NextArrow->SetVisibility(ESlateVisibility::Visible);
|
NextArrow->SetVisibility(ESlateVisibility::Hidden);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Called every frame
|
// Called every frame
|
||||||
@ -139,6 +142,7 @@ void UDialogueNPC::StartDialogue()
|
|||||||
Choice1Button->SetVisibility(ESlateVisibility::Hidden);
|
Choice1Button->SetVisibility(ESlateVisibility::Hidden);
|
||||||
Choice2Button->SetVisibility(ESlateVisibility::Hidden);
|
Choice2Button->SetVisibility(ESlateVisibility::Hidden);
|
||||||
Choice3Button->SetVisibility(ESlateVisibility::Hidden);
|
Choice3Button->SetVisibility(ESlateVisibility::Hidden);
|
||||||
|
NextArrow->SetVisibility(ESlateVisibility::Hidden);
|
||||||
DialogueText->SetText(FText::FromString(""));
|
DialogueText->SetText(FText::FromString(""));
|
||||||
DialogueWidgetInstance->AddToViewport();
|
DialogueWidgetInstance->AddToViewport();
|
||||||
NPCNameText->SetText(FText::FromString(NPCName));
|
NPCNameText->SetText(FText::FromString(NPCName));
|
||||||
|
Loading…
Reference in New Issue
Block a user