Great I managed to get it working mostly, but now a couple of visual problems are happening when I end the second conversation and call Pop
Case 1: I call in the second conversation to appear with multiple buttons but the last button is to ignore and call pop (just hide the 2nd convo and keep showing the main), if I press it two things happen:
NPC_2 text stays on screen
NPC_1’s dialogue player responses are in red instead of white (they are still using the 2nd convo ui)
Case 2: I avoid pressing the ignore button and actually enter the second conversation and I’m displaying the npc text and player responses in the main ui (where the first conversation is going usually), works great except when I pop back to the main one at the end, the correct player responses show up but the npc text is the same as the last npc text from the 2nd conversation, so it doesnt really update to NPC_1 its still using NPC_2
Hi @skinwalker_1 - Using the panel names from the example I attached (so we’re talking about the same things), the red panel is NPC Subtitle Panel 2. Make sure NPC Subtitle Panel 2’s Visibility dropdown is set to “Until Superceded”.
You may need to configure the last button’s Sequence to set NPC_1 to use NPC Subtitle Panel 0:
SetPanel(NPC_1, 0)
I think that should resolve both issues. If it doesn’t let me know and I’ll add push and pop to the example scene so you’ll have a template to look over.
Hi - This package contains a second scene that demonstrates Push and Pop. I used the HidePanel() sequencer command introduced in version 2.2.13 to make sure that the interjection panel definitely gets hidden when the interjection conversation pops back to the main conversation.
I am using LipSync Pro in my scene. I am also using Oculus (Not sure if that is important)
I am pretty much copying the setup from the Lincoln scene for my NPC and using the oculus laser pointer scene’s NPC dialogue and canvas for my VR game.
The dialogue works fine and I figured out how to get the clips playing in the sequence field (Lipsync audio drag n drop) but I notice my NPC wont use the lipsync clip unless I add the component “Dialogue Actor” from the lincoln NPC onto mine. This plays the clip when you press talk but I can no longer see any dialogue options as my VR canvas (the laser demo canvas) disappears from world space and will instead be overlayed on my unity Game screen instead of my headset. I noticed on play it deletes my Dialogue manager prefab in the scene and instantiates the default one. If I remove the “Dialogue Actor” script from my NPC it keeps my dialogue manager and VR dialogue + everything works but my Lipsync clip wont play.
Hi @FrostedBrain - I think something else may be going on here. The Dialogue Actor component will not delete the Dialogue Manager GameObject.
By default, the Dialogue Manager is a persistent singleton. This means that at runtime the first Dialogue Manager GameObject to exist in your playthrough will survive scene changes and replace any Dialogue Managers that had been placed in subsequent scenes at design time. Make sure this first Dialogue Manager is configured the way you want. You can also have Dialogue Managers in other scenes to make it easy to playtest those scenes directly. Just keep in mind that it may be replaced at runtime.
The Dialogue Actor component associates a GameObject with an actor in your dialogue database. (For full details about the ways GameObjects can be assigned to actors, see Character GameObject Assignments.) When you’re working with something like LipSync, this tells the LipSync() sequencer command which GameObject has the LipSync component.
The Dialogue Actor component can also optionally tell conversations to use a different subtitle panel when showing the actor’s subtitles. This can be a different panel in your regular dialogue UI or a separate panel altogether such as an overhead speech bubble panel. I mention this because, if you’ve assigned things to the Dialogue Actor’s subtitle panel or menu panel sections, it might be overriding the regular dialogue UI on your VR canvas.
I tried setting the subtitle and menu panel fields to custom and dragging my UI panels in from the scene but I still get the standard UI on my Game screen instead of my worldspace UI
Hi @FrostedBrain - Sorry, I wasn’t clear. Try not setting the subtitle and menu panel fields. Leave the panel numbers set to Default. I only mentioned those settings because they could have been causing a problem if they were set (e.g., set to non-VR canvases).
Thanks Tony it works great. Can you check one last thing because Im not sure if its a bug or Im doing it wrong. If the 2nd conversation starts using the first conversations UI midway though and then at the end you call Pop and go back to the main conversation thats using the same UI, can you see the proper text from the first conversation being displayed right away or you have to press the button to go to the next node and thats when it updates? Here its suck on the 2nd NPC’s last line showing the 1st NPC’s options right after I call Pop.
Hi @skinwalker_1 - Import this patch and tick the Conversation Position Stack component’s Push Current Entry checkbox.
It’s a bit tucked away in the docs, but the stack normally pushes the next node in the conversation. Under normal circumstances, this prevents infinite loops. Otherwise you’d be pushing the node that links to the interjection conversation, so when you pop back you’d follow that node again and go right back to the interjection conversation, ad infinitum.
However, in your case, you want to push that one, since you’re pushing it from an external source. The Push Current Entry checkbox will do that.
@TonyLi Just watched “Games Showcase 2020” …Awesome collection of games. Proud to own your assets
Back for help
How do I save my PlayMaker variables? I added PM plugin from ThirdParty support folder. When I load a Saved game, the PM Global variables hold the previous values, they are not reset.
Hi @SamRock - You can copy the ones you need to save to Dialogue System variables before saving, and then copy them back after loading. There isn’t currently a “Saver” component for PlayMaker global variables, but I’ll add it to the roadmap.
Thanks! I wish we could have included all of the many great-looking games that have been released recently and are in development, but there’s only so much time in a video. If anyone would like their game to be included in the next showcase, just let me know on the forum or discord. Here’s the video for anyone that missed it:
How is it deciding which database to pick to pull conversations from if its used in a scriptable object with no references to the dialogue manager or dialogue database?
Animmal Studio is running some great Twitch dev streams for The Way of Wrath, a tactical RPG that uses the Dialogue System for Unity, Quest Machine, and Love/Hate.