SOLVED: Hide text after response was selected in transparent dialogue UI
SOLVED: Hide text after response was selected in transparent dialogue UI
Hi there,
I'm still a beginner with custom UI designs, so if this might seem a silly question, please bear with me
I wanted to make a transparent UI dialogue, but whenever a dialogue closes, I can see for a short moment the text the NPC said before. How can I immediately remove the previous text so that no text is below my current text?
Attached a video of what it looks like:
As you can see, the NPC text (Bruuu bruuuu) is visible for a very short time when the only possible answer was selected by the player, it looks like it overlaps.
These are my current settings for the Dialogue Manager in general:
I thought that perhaps the setting "Show NPC Subtitles with Responses" might solve the problem, but it stays the same.
My custom UI is a copy of the focus template.
All the best,
Evelyn
I'm still a beginner with custom UI designs, so if this might seem a silly question, please bear with me
I wanted to make a transparent UI dialogue, but whenever a dialogue closes, I can see for a short moment the text the NPC said before. How can I immediately remove the previous text so that no text is below my current text?
Attached a video of what it looks like:
As you can see, the NPC text (Bruuu bruuuu) is visible for a very short time when the only possible answer was selected by the player, it looks like it overlaps.
These are my current settings for the Dialogue Manager in general:
I thought that perhaps the setting "Show NPC Subtitles with Responses" might solve the problem, but it stays the same.
My custom UI is a copy of the focus template.
All the best,
Evelyn
Last edited by Thistis on Fri Dec 06, 2019 6:01 pm, edited 1 time in total.
Re: Hide text after response was selected in transparent dialogue UI
Hi Evelyn,
This happens because, in your dialogue UI, the subtitle panel and the response menu panel overlap. When the response menu panel fades out, the subtitle panel underneath it is briefly visible.
The solution is to tell the subtitle panel to disappear when the response menu panel is visible. To do this, inspect the subtitle panel's Standard UI Subtitle Panel component. Change the Visibility dropdown to Only During Content.
Alternatively, move the subtitle panel to a separate location, as in the Basic Standard Dialogue UI, or Wheel UI as seen in DemoScene1.
This happens because, in your dialogue UI, the subtitle panel and the response menu panel overlap. When the response menu panel fades out, the subtitle panel underneath it is briefly visible.
The solution is to tell the subtitle panel to disappear when the response menu panel is visible. To do this, inspect the subtitle panel's Standard UI Subtitle Panel component. Change the Visibility dropdown to Only During Content.
Alternatively, move the subtitle panel to a separate location, as in the Basic Standard Dialogue UI, or Wheel UI as seen in DemoScene1.
Re: Hide text after response was selected in transparent dialogue UI
Hello Toni,
thanks for your speedy reply.
Do you mean this setting? I clicked on the Subtitle Panel 0 (NPC) in the Dialogue Panel and changed the setting here.
I changed it for the PC as well, but I can still see it for a very short moment unfortunately :/
The second option might be better, but we would like to have the dialogue stay in the same place hmm :/
All the best,
Evelyn
thanks for your speedy reply.
Do you mean this setting? I clicked on the Subtitle Panel 0 (NPC) in the Dialogue Panel and changed the setting here.
I changed it for the PC as well, but I can still see it for a very short moment unfortunately :/
The second option might be better, but we would like to have the dialogue stay in the same place hmm :/
All the best,
Evelyn
Re: Hide text after response was selected in transparent dialogue UI
I'm having trouble reproducing the issue. Here's my test scene if you want to compare it to yours:
TestHideText_2019-10-31.unitypackage
Alternatively, you could clear the subtitle text whenever the subtitle panel loses focus:
Or clear it whenever the response menu gains focus. (In this case, set the response menu's OnFocus() event to clear the subtitle text.)
TestHideText_2019-10-31.unitypackage
Alternatively, you could clear the subtitle text whenever the subtitle panel loses focus:
Or clear it whenever the response menu gains focus. (In this case, set the response menu's OnFocus() event to clear the subtitle text.)
Re: Hide text after response was selected in transparent dialogue UI
Hello Tony,
sorry for the late reply, I was ill the last week and didn't get to test it before.
I tried your scene, but here I could also reproduce the error
Around second 8, you can see after choosing the reply "I'm on it" that both texts are overlayed for a short moment, as chosen reply "I'm on it" and the previous text "Help me take out those enemies before they call for reinforcements".
Maybe it's better visible in this screenshot from the video:
I found a way in the meantime that works for us
- Set the image of the Text Panel to disabled
- Set the image of Response Menu Panel to disabled
- Create a game object that contains the background and is listed below the other GameObjects
- Set the visibility of Standard UI Subtitle Panel for PC to Visbility - Only During Content
- Set the visibility of Standard UI Subtitle Panel for NPC to Visbility - Only During Content
All the best,
Evelyn
sorry for the late reply, I was ill the last week and didn't get to test it before.
I tried your scene, but here I could also reproduce the error
Around second 8, you can see after choosing the reply "I'm on it" that both texts are overlayed for a short moment, as chosen reply "I'm on it" and the previous text "Help me take out those enemies before they call for reinforcements".
Maybe it's better visible in this screenshot from the video:
I found a way in the meantime that works for us
- Set the image of the Text Panel to disabled
- Set the image of Response Menu Panel to disabled
- Create a game object that contains the background and is listed below the other GameObjects
- Set the visibility of Standard UI Subtitle Panel for PC to Visbility - Only During Content
- Set the visibility of Standard UI Subtitle Panel for NPC to Visbility - Only During Content
All the best,
Evelyn
Re: Hide text after response was selected in transparent dialogue UI
Hi Evelyn,
I'm glad you found something that works for you. The issue is that the panels are fading out and in at the same time (which is by design). An alternative would be to turn off the fade animations by setting the panels' Show Trigger and Hide Trigger fields to blank strings. However, this would turn off the fades entirely, which may not be what you want.
I'm glad you found something that works for you. The issue is that the panels are fading out and in at the same time (which is by design). An alternative would be to turn off the fade animations by setting the panels' Show Trigger and Hide Trigger fields to blank strings. However, this would turn off the fades entirely, which may not be what you want.
Re: Hide text after response was selected in transparent dialogue UI
Hello Toni,
I tried to play a bit around with this one again and I actually liked the idea that you wrote in one answer of this post
I tried your other solution, setting the Subtitle Text to an empy String when the Response Menu Panel gains Focus. This does work, but unfortunately it does take some time until the text disappears, see video below:
I tried to change the "Focus Check Frequency" to a very low value (0.01), but this didn't effect the speed. I guess it might also have to do with the fade animation, as the Response Menu Panel might only gain focus after the Text Panel has completely faded?
Any ideas how I could continue with this?
I tried to play a bit around with this one again and I actually liked the idea that you wrote in one answer of this post
On Unfocus() didn't work for me. I tried to disable a GameObject when OnFocus() is triggered, but this doesn't seem to happen with the Focus Template, at least nothing happened when I tried, maybe because the NPC panel is set to "Always Once Shown", else the NPC image would disappear.
I tried your other solution, setting the Subtitle Text to an empy String when the Response Menu Panel gains Focus. This does work, but unfortunately it does take some time until the text disappears, see video below:
I tried to change the "Focus Check Frequency" to a very low value (0.01), but this didn't effect the speed. I guess it might also have to do with the fade animation, as the Response Menu Panel might only gain focus after the Text Panel has completely faded?
Any ideas how I could continue with this?
Re: Hide text after response was selected in transparent dialogue UI
Hi,
Let's try this: Add a Dialogue System Events component to the dialogue UI. Configure the OnConversationResponseMenu() event to clear the subtitle text, like this:
Here's an example scene:
DS_FocusAndPortraits_2019-12-05.unitypackage
I exported it from Unity 2019.2. If it doesn't work and you're using an earlier version of Unity, let me know and I'll recreate it in that version.
In the example scene, the response menu is semi-transparent purple, and the response buttons start lower than the subtitle text so you can clearly see if they're visible at the same time. (They shouldn't be.)
Let's try this: Add a Dialogue System Events component to the dialogue UI. Configure the OnConversationResponseMenu() event to clear the subtitle text, like this:
Here's an example scene:
DS_FocusAndPortraits_2019-12-05.unitypackage
I exported it from Unity 2019.2. If it doesn't work and you're using an earlier version of Unity, let me know and I'll recreate it in that version.
In the example scene, the response menu is semi-transparent purple, and the response buttons start lower than the subtitle text so you can clearly see if they're visible at the same time. (They shouldn't be.)
Re: Hide text after response was selected in transparent dialogue UI
Hello Toni,
I just tried the testscene and integrated it into our project and now it works perfectly, thank you very much! ^_^
All the best,
Evelyn
I just tried the testscene and integrated it into our project and now it works perfectly, thank you very much! ^_^
All the best,
Evelyn