best way to launch sequence?

Announcements, support questions, and discussion for the Dialogue System.
alfonso
Posts: 104
Joined: Mon Jul 13, 2015 6:31 am

best way to launch sequence?

Post by alfonso »

Hi tony! one question.

i have a simple tree with some decisions, and if the player choose a especial one i will want to launch a sequence to teleport to another scene, the problem is if i put de sequence in the same node of the response the sequence is launched before the dialogue and if i put a blank node with only the sequence this will execute after dialogue but dont hide de dialogue and show a blank panel of the dialogue.

what im making wrong?

thanks you men :)
User avatar
Tony Li
Posts: 22102
Joined: Thu Jul 18, 2013 1:27 pm

Re: best way to launch sequence?

Post by Tony Li »

Hi Alfonso,

Try setting the node's Sequence to something like:

Code: Select all

LoadLevel(anotherScene)@{{end}}
This will teleport only after showing the dialogue text for a time.

If you're using continue buttons, you can set it to:

Code: Select all

required LoadLevel(anotherScene)@99999
This will not run until 99,999 seconds, or as soon as the player clicks the Continue button.

If you want to use a blank node, set its Sequence to:

Code: Select all

None()
This tells the Dialogue Manager to not spend any time showing the node.
alfonso
Posts: 104
Joined: Mon Jul 13, 2015 6:31 am

Re: best way to launch sequence?

Post by alfonso »

great!! i knew that i'm missed something :) i will try now
alfonso
Posts: 104
Joined: Mon Jul 13, 2015 6:31 am

Re: best way to launch sequence?

Post by alfonso »

:( dont work any option.

where is the sequence called? it's possible that i overwrote the method who call the sequencer or something?

i'm using a custom sequence but if i dont put anything is called fine but at the start of the node.
User avatar
Tony Li
Posts: 22102
Joined: Thu Jul 18, 2013 1:27 pm

Re: best way to launch sequence?

Post by Tony Li »

Another customer also reported that commands are running at the beginning of a dialogue entry instead of their scheduled time. I'll look into this today and reply back here.
alfonso
Posts: 104
Joined: Mon Jul 13, 2015 6:31 am

Re: best way to launch sequence?

Post by alfonso »

i debugged the dialogue and i'm receiving this two line in the console and looks like it trying to play the sequencer but then come in blank and override it?

Hope this help

Code: Select all

Dialogue System: Sequencer.Play( LoadLevel(TestingAlfonso)@9999 )
UnityEngine.Debug:Log(Object)
PixelCrushers.DialogueSystem.Sequencer:PlayCommand(String, Boolean, Single, String, String, String[])
PixelCrushers.DialogueSystem.Sequencer:PlaySequence(String)
PixelCrushers.DialogueSystem.Sequencer:PlaySequence(String, Boolean, Boolean)
PixelCrushers.DialogueSystem.ConversationView:StartSubtitle(Subtitle, Boolean, Boolean)
PixelCrushers.DialogueSystem.ConversationController:GotoState(ConversationState)
PixelCrushers.DialogueSystem.ConversationController:OnSelectedResponse(Object, SelectedResponseEventArgs)
PixelCrushers.DialogueSystem.ConversationView:SelectResponse(SelectedResponseEventArgs)
PixelCrushers.DialogueSystem.ConversationView:OnSelectedResponse(Object, SelectedResponseEventArgs)
PixelCrushers.DialogueSystem.AbstractDialogueUI:OnClick(Object)
PixelCrushers.DialogueSystem.CSUIDialogue:OnClick(Object) (at Assets/Dialogue System/CrossingSouls/CSUIDialogue.cs:100)
UnityEngine.Component:SendMessage(String, Object, SendMessageOptions)
PixelCrushers.DialogueSystem.UnityUIResponseButton:OnClick() (at Assets/Dialogue System/Scripts/Supplemental/UI/Dialogue UI/UnityUIResponseButton.cs:151)
UnityEngine.EventSystems.ExecuteEvents:Execute(GameObject, BaseEventData, EventFunction`1)
InControl.InControlInputModule:SendButtonEventToSelectedObject() (at Assets/Plugins/InControl/Source/GUI/InControlInputModule.cs:155)
InControl.InControlInputModule:Process() (at Assets/Plugins/InControl/Source/GUI/InControlInputModule.cs:132)
UnityEngine.EventSystems.EventSystem:Update()

Dialogue System: Sequencer received a blank string as a command name
UnityEngine.Debug:Log(Object)
PixelCrushers.DialogueSystem.Sequencer:ActivateCommand(String, String, String[])
PixelCrushers.DialogueSystem.Sequencer:PlayCommand(String, Boolean, Single, String, String, String[])
PixelCrushers.DialogueSystem.Sequencer:PlaySequence(String)
PixelCrushers.DialogueSystem.Sequencer:PlaySequence(String, Boolean, Boolean)
PixelCrushers.DialogueSystem.ConversationView:StartSubtitle(Subtitle, Boolean, Boolean)
PixelCrushers.DialogueSystem.ConversationController:GotoState(ConversationState)
PixelCrushers.DialogueSystem.ConversationController:OnSelectedResponse(Object, SelectedResponseEventArgs)
PixelCrushers.DialogueSystem.ConversationView:SelectResponse(SelectedResponseEventArgs)
PixelCrushers.DialogueSystem.ConversationView:OnSelectedResponse(Object, SelectedResponseEventArgs)
PixelCrushers.DialogueSystem.AbstractDialogueUI:OnClick(Object)
PixelCrushers.DialogueSystem.CSUIDialogue:OnClick(Object) (at Assets/Dialogue System/CrossingSouls/CSUIDialogue.cs:100)
UnityEngine.Component:SendMessage(String, Object, SendMessageOptions)
PixelCrushers.DialogueSystem.UnityUIResponseButton:OnClick() (at Assets/Dialogue System/Scripts/Supplemental/UI/Dialogue UI/UnityUIResponseButton.cs:151)
UnityEngine.EventSystems.ExecuteEvents:Execute(GameObject, BaseEventData, EventFunction`1)
InControl.InControlInputModule:SendButtonEventToSelectedObject() (at Assets/Plugins/InControl/Source/GUI/InControlInputModule.cs:155)
InControl.InControlInputModule:Process() (at Assets/Plugins/InControl/Source/GUI/InControlInputModule.cs:132)
UnityEngine.EventSystems.EventSystem:Update()

User avatar
Tony Li
Posts: 22102
Joined: Thu Jul 18, 2013 1:27 pm

Re: best way to launch sequence?

Post by Tony Li »

The second line:

Code: Select all

Dialogue System: Sequencer received a blank string as a command name
probably just indicates that you have a semicolon ( ; ) at the end, such as:

Code: Select all

LoadLevel(TestingAlfonso)@9999;
The grammar of sequences uses semicolons to divide commands. It's just reporting that it think there's an empty command after the semicolon. It's harmless.

As soon as I have a chance, I'll look into this and reply back here.
User avatar
Tony Li
Posts: 22102
Joined: Thu Jul 18, 2013 1:27 pm

Re: best way to launch sequence?

Post by Tony Li »

Everything seems to be okay. Here's how I tested it:

Image

On the Dialogue Manager, I ticked Show PC Subtitles During Line and set Continue Button to Always because I think that's how your Dialogue Manager is set up. My Dialogue Manager also has a Level Manager component.

When I selected the response button "Take me to the Server Room", it waited until I clicked the Continue Button. Then it changed scenes to the Server Room.
alfonso
Posts: 104
Joined: Mon Jul 13, 2015 6:31 am

Re: best way to launch sequence?

Post by alfonso »

hi Tony

yes i have that settings in my Dialogue Manager, but its no working for me, dont know why, i tested this options with my custom sequencer

1º Teleport(TestingAlfonso, Teleport2) == work fine but fired before show the dialogue text, the normal behave.
2º Teleport(TestingAlfonso, Teleport2)@9999 == not work, anything happens
3º requiered Teleport(TestingAlfonso, Teleport2)@9999 == not work, anything happens

each option show the same in the Debug (but with their own command)

Code: Select all

Dialogue System: Sequencer.Play( Teleport(TestingAlfonso, Teleport2)@9999 )
UnityEngine.Debug:Log(Object)
PixelCrushers.DialogueSystem.Sequencer:PlayCommand(String, Boolean, Single, String, String, String[])
PixelCrushers.DialogueSystem.Sequencer:PlaySequence(String)
PixelCrushers.DialogueSystem.Sequencer:PlaySequence(String, Boolean, Boolean)
PixelCrushers.DialogueSystem.ConversationView:StartSubtitle(Subtitle, Boolean, Boolean)
PixelCrushers.DialogueSystem.ConversationController:GotoState(ConversationState)
PixelCrushers.DialogueSystem.ConversationController:OnSelectedResponse(Object, SelectedResponseEventArgs)
PixelCrushers.DialogueSystem.ConversationView:SelectResponse(SelectedResponseEventArgs)
PixelCrushers.DialogueSystem.ConversationView:OnSelectedResponse(Object, SelectedResponseEventArgs)
PixelCrushers.DialogueSystem.AbstractDialogueUI:OnClick(Object)
UnityEngine.Component:SendMessage(String, Object, SendMessageOptions)
PixelCrushers.DialogueSystem.UnityUIResponseButton:OnClick() (at Assets/Dialogue System/Scripts/Supplemental/UI/Dialogue UI/UnityUIResponseButton.cs:151)
UnityEngine.EventSystems.ExecuteEvents:Execute(GameObject, BaseEventData, EventFunction`1)
InControl.InControlInputModule:SendButtonEventToSelectedObject() (at Assets/Plugins/InControl/Source/GUI/InControlInputModule.cs:155)
InControl.InControlInputModule:Process() (at Assets/Plugins/InControl/Source/GUI/InControlInputModule.cs:132)
UnityEngine.EventSystems.EventSystem:Update()
my hierarchy is CSBubbleDialogue -> CSUIDialogue -> AbstractDialogueUI

it has something relevant for the sequencer that i maybe was deleted in my custom class?

EDIT: other weird thing is if in the end node i use a sequencer like LoadLevel the DialogueSystem don't hide the panel
User avatar
Tony Li
Posts: 22102
Joined: Thu Jul 18, 2013 1:27 pm

Re: best way to launch sequence?

Post by Tony Li »

Hi Alfonso,
alfonso wrote:3º requiered Teleport(TestingAlfonso, Teleport2)@9999 == not work, anything happens
Could it just be a typo? "required" is misspelled. Try to copy-and-paste this:

Code: Select all

required Teleport(TestingAlfonso, Teleport2)@9999
If that doesn't work, try to copy-and-paste this:

Code: Select all

required Teleport(TestingAlfonso, Teleport2)@{{end}}
It won't wait for the Continue Button, but it will wait for some amount of time to show the text.

If either works, please let me know. This will be more information to help debug the issue.
Post Reply