Cannot set when a Bark / Alert Ends. (Wait until On continue)

Announcements, support questions, and discussion for the Dialogue System.
Post Reply
SystemId
Posts: 30
Joined: Thu Aug 08, 2019 1:31 pm

Cannot set when a Bark / Alert Ends. (Wait until On continue)

Post by SystemId »

Hello,
I've tried playing with a bundle of settings, and I can't seem to get a Bark and the Alert message to pause properly. (Wait until a continue button is pressed)

I am using Dialogue System Events: On Bark End to run some functions. (Return player movement controls)
I have a Bark pop up and I want it to stay up until the continue button is pressed, and then it would return movement controls to the player. (On Bark End)
bark_problem01.JPG
bark_problem01.JPG (105.3 KiB) Viewed 414 times
The problem I am running into is that when I check "Wait For Continue Button" off, my controls have already return to the Player after the Duration time expires. The bark is still present, until I hit my continue button. Which leads me to believe the "Bark" has ended after the duration time has passed, but not when the Bark is still active.
The attachment bark_problem01.JPG is no longer available

I would also like Alert Messages to stay up until a Continue button is pressed. Currently the Alert stays for a set amount of time before just automatically disappearing.

I am currently using Unity's new Input System, and I need to control when certain Control Groups turn on / off.

Sorry to have to write a forum post when you might have answered this question somewhere, but after a lot of digging I couldn't seem to find the answer.
User avatar
Tony Li
Posts: 22055
Joined: Thu Jul 18, 2013 1:27 pm

Re: Cannot set when a Bark / Alert Ends. (Wait until On continue)

Post by Tony Li »

Hi,

If the bark UI's Wait For Continue Button is ticked, the bark UI will stay onscreen until the continue button is clicked (technically, until the continue button or something else calls the bark UI's OnContinue method). But the bark itself will finish when its duration is done (see the Dialogue Manager's Bark Settings section) or when the sequence is done if the bark has a sequence.

The Dialogue System sends the OnBarkEnd message when the sequence is done and the bark UI's regular duration has elapsed. It occurred to me recently that the bark UI's regular duration should really be infinity if it's waiting for a continue button. The next version has that change.

In the meantime, you can set the bark UI's duration to something like 3600 (one hour) so it will in practice wait until the player clicks the continue button before sending the OnBarkEnd message.

---

Similarly, for alerts you can set the Dialogue Manager's Alert Settings duration to 3600. Add a continue button to your alert panel, and configure it to call the dialogue UI's OnContinueAlert method.

Unlike barks, alerts don't send messages when they start and end. To add messages, you can make a subclass of StandardDialogueUI. Override the ShowAlert and HideAlert methods:

Code: Select all

public class MyDialogueUI : StandardDialogueUI
{
    public override void ShowAlert(string message, float duration)
    {
         base.ShowAlert(message, duration);
         // Report that an alert message has started, such as:
         DialogueManager.instance.SendMessage("OnAlertStart");
     }     
     public override void HideAlert()
     {
         base.HideAlert();
         DialogueManager.instance.SendMessage("OnAlertEnd");
     }
 }
SystemId
Posts: 30
Joined: Thu Aug 08, 2019 1:31 pm

Re: Cannot set when a Bark / Alert Ends. (Wait until On continue)

Post by SystemId »

Thanks Tony. I was a little confused on how the 2 methods worked with each other. Thanks for updated it in the future., and thanks for the prompt replies! Really appreciated!
User avatar
Tony Li
Posts: 22055
Joined: Thu Jul 18, 2013 1:27 pm

Re: Cannot set when a Bark / Alert Ends. (Wait until On continue)

Post by Tony Li »

You're welcome!
Post Reply