I'm trying to disable/enable dialogue interactions after one is complete.
I'm trying to use the Dialogue System Events to achieve this, but the Dialogue System event doesn't seem to be switching the next child object to active.
So I'm trying to set active true the game object of the next dialogue, and then next set active false of the previous like shown below, but it's not working.
What you're showing in the screenshots should work. However, the conversation must use 'Seranez' or 'Seranez explains it' as the actor or conversant GameObject. For example, if you're starting the conversation using a Dialogue System Trigger, then Seranez should be assigned to Actions > Start Conversation > Conversation Conversant or Conversation Actor. This table explains which GameObjects receive OnConversationStart and OnConversationEnd messages. If the GameObject doesn't receive the message, then the Dialogue System Events won't run.
Thanks for the response Tony. Is this what you're talking about
I have that set on both.
Could it be that I have two children with Dialogue System events, and when one conversation ends, both of those dialogue system events are running their OnConversationEnd()?
Last edited by jnhasty7 on Fri May 24, 2019 11:09 am, edited 1 time in total.
Yes, that can happen. It's the way Unity handles messages.
You could remove the GameObject.SetActive entry from Dialogue System Events, and instead use the SetActive() sequencer command with a very short delay to prevent it from coming active on the same frame that the OnConversationEnd message is being sent: