Page 1 of 1

set bark duration from code

Posted: Mon Mar 28, 2022 1:41 am
by joeylu
Hi Tony,
I'm trying to achieve something like this
When my player is speaking or listening, some icon will popup above its head, I think a bark UI can perfectly fits in such situation.
But since the bark UI has a fixed duration, how do I set its duration dynamically from script based on every dialogue entry's duration? Basically I can use OnConversationLineEnd() to manually turn off the bark UI, but How do I for the bark to stay until it is called to disappear?
Another question is that what is the easiest way to change bark UI's text to an icon? use getcomponent to get its text mesh GUI then change it manually? or your engine has its built-in way? tks

Re: set bark duration from code

Posted: Mon Mar 28, 2022 9:09 am
by Tony Li
Hi,

You can configure a bark UI to wait until the player clicks a continue button and/or wait until the bark's associated Sequence ends. If you tick Wait For Continue Button, make sure to add a continue button to your bark UI and configure OnClick() to call the bark UI's OnContinue() method. To manually hide a bark UI, call its Hide() method.

Note: By default, in the Dialogue Manager's Display Settings > Bark Settings, Allow Barks During Conversations is UNticked. You may want to tick this if you want to show a bark while a conversation is playing.

An easy way to change a bark UI's text to use icons is to use TextMesh Pro. See TextMesh Pro Support. Then use <sprite> tags. Alternatively, if you always want to show one specific icon, you could just add an Image to your bark UI that shows that icon.