Firstly, thank you for this amazing tool. I'm blown away by its potential. That said, I've been racking my brain for hours and hours trying to get even the most basic things to work. I've gone through tutorials, documentation, forums, and the example projects only to find nothing. So as a last-ditch effort, I signed up to ask directly.
In my scene, I have two main problems. The first is that player responses aren't showing up, nor is the system waiting for user input before just going ahead and deciding to select the first one. I tried making a new scene and restarting everything from scratch and it's still giving this issue wherein it cycles through the conversation, always picking the first player action, and carrying on without me. In this case, it's just going down the left-hand side. Not even seeming to wait two whole seconds as the default timing suggests.
Secondly, and possibly related, the responses remain disabled in the Hierarchy and only show up briefly after it's already been selected - and again, only the first one. There should be multiple buttons in the scroll view, but I can't tell if they're just invisible, not spawned yet, or collapsed down to size zero. In this instance, there should be Yes and No buttons, but everything is disabled:
Again, I tried going back to basics with a fresh scene, using the built-in UI prefabs, default settings, and a very basic dialogue tree with branching paths and no conditions. I thought maybe player responses required some sort of variable or state change - which makes sense, why branch if everything is the same across both paths - but even that didn't work. So I'm at a total loss here.
Also, somewhat unrelated, but can you please make it so that New Input System input actions can just be dragged-and-dropped into the system instead of having to use strings? Sort of like how the Event System works. I must say, the New Input integration is very unintuitive compared to the rest. Thanks in advance.
Responses Not Showing Up or Waiting for Input
-
- Posts: 8
- Joined: Sun Sep 01, 2024 8:43 am
-
- Posts: 8
- Joined: Sun Sep 01, 2024 8:43 am
Re: Responses Not Showing Up or Waiting for Input
So, I think part of the issue might have stemmed from having accidentally duplicated the Player and only one of them - the one assigned to Actor - didn't have IsPlayer checked.
Re: Responses Not Showing Up or Waiting for Input
Hi,
Thanks for the update. The duplicate Player is probably the issue. If it's still not working, then to get a baseline (i.e., verify that the Dialogue System itself it working properly), please play the Dialogue System's DemoScene1 and let me know if you see a menu when you talk to the solider NPC (Private Hart). It will be a wheel-style response menu with one response button since the conversation is only written with one response at a time.
If that works, then when you play your conversation in your own scene are there any errors or warnings in the Console window?
How are you starting the conversation? Using a Dialogue System Trigger? If so, can you post the inspector view of the Dialogue System Trigger?
Then please temporarily set the Dialogue Manager GameObject's Other Settings > Debug Level to Info. Then play the scene and start the conversation. Look for a line like this in the Console:
Dialogue System: Starting conversation 'title' with actor=XXX and conversant=YYY
where XXX is the GameObject (if any) that the conversation has associated with the 'Player' actor and YYY is the GameObject associated with the 'Goddess' actor. For more info about this, please see: Character GameObject Assignments
Before you see the line:
Dialogue System: Goddess says 'Make your choice, mortal'
you should see some lines in the Console similar to:
Dialogue System: Add Link (Player): ID=#:# 'Yes' (True)
Dialogue System: Add Link (Player): ID=#:# 'No' (True)
Do you see lines similar to that?
A few more questions:
Thanks for the update. The duplicate Player is probably the issue. If it's still not working, then to get a baseline (i.e., verify that the Dialogue System itself it working properly), please play the Dialogue System's DemoScene1 and let me know if you see a menu when you talk to the solider NPC (Private Hart). It will be a wheel-style response menu with one response button since the conversation is only written with one response at a time.
If that works, then when you play your conversation in your own scene are there any errors or warnings in the Console window?
How are you starting the conversation? Using a Dialogue System Trigger? If so, can you post the inspector view of the Dialogue System Trigger?
Then please temporarily set the Dialogue Manager GameObject's Other Settings > Debug Level to Info. Then play the scene and start the conversation. Look for a line like this in the Console:
Dialogue System: Starting conversation 'title' with actor=XXX and conversant=YYY
where XXX is the GameObject (if any) that the conversation has associated with the 'Player' actor and YYY is the GameObject associated with the 'Goddess' actor. For more info about this, please see: Character GameObject Assignments
Before you see the line:
Dialogue System: Goddess says 'Make your choice, mortal'
you should see some lines in the Console similar to:
Dialogue System: Add Link (Player): ID=#:# 'Yes' (True)
Dialogue System: Add Link (Player): ID=#:# 'No' (True)
Do you see lines similar to that?
A few more questions:
- On your Dialogue Manager GameObject, can you post a screenshot of the Display Settings > Subtitle Settings section?
- On your Dialogue Manager GameObject, what are Display Settings > Camera & Cutscene Settings > Default Sequence and Default Player Sequence set to? (If Default Player Sequence is blank, that's fine; the player's lines will use Default Sequence in this case.)
- If you inspect your conversation in the Dialogue Editor and select Menu > Conversation Properties (or just click blank canvas space), it will show the conversation's properties. In the conversation's properties, is Override Display Settings ticked?
That is a good suggestion. I'll add it to the task list. This is the pitfall of providing early support for new Unity features. The Dialogue System was one of the first assets to support the Input System package. Back then, the Input System didn't yet provide the ability to drag-and-drop, and later on we didn't want to impact existing developers' projects. But at this point I can add drag-and-drop (or -- more likely -- dropdown menus like the InputSystemUIInputModule) without impacting existing developers.Marushia Dark wrote: ↑Sun Sep 01, 2024 8:54 amAlso, somewhat unrelated, but can you please make it so that New Input System input actions can just be dragged-and-dropped into the system instead of having to use strings? Sort of like how the Event System works. I must say, the New Input integration is very unintuitive compared to the rest. Thanks in advance.
-
- Posts: 8
- Joined: Sun Sep 01, 2024 8:43 am
Re: Responses Not Showing Up or Waiting for Input
So I had some issues with the Demo Scene not being able to load the dialogue window. I'm wondering if it's something in the way I set up my own GameInput controls and my Event System, if that's likely causing conflict, as it's getting bootstrapped in at initialization. I tried disabling them, but still nothing. I'm sure this is probably the worst way to set these up, but am in the midst of a game jam, so having to be crude and hacky for the sake of time, so skipping over things like switching action maps and disabling player movement.
I know, in the past, I've had trouble getting gamepad controls to play nice with UI, even after following tutorials on the matter, so that's likely at issue as well. Between that and something I'm not understanding about how these systems work together.
When I go to submit a player input, it closes out of the conversation, which leads me to think there may be some sort of conflict in terms of what the button commands are doing. As for the trigger, I'm using the basic Usable / Selector / On Use approach:
I know, in the past, I've had trouble getting gamepad controls to play nice with UI, even after following tutorials on the matter, so that's likely at issue as well. Between that and something I'm not understanding about how these systems work together.
When I go to submit a player input, it closes out of the conversation, which leads me to think there may be some sort of conflict in terms of what the button commands are doing. As for the trigger, I'm using the basic Usable / Selector / On Use approach:
Re: Responses Not Showing Up or Waiting for Input
Hi,
You do not need to register the inputs that are used by your EventSystem GameObject.
You only need to use InputDeviceManager.RegisterInputAction() for inputs that the Dialogue System reads outside of Unity UI, such as with the Selector component's Use Button. (Or the Proximity Selector component, if you're using that.)
For regular Unity UI input, such as what's used by the dialogue UI (continue button, response menu, etc.), the Dialogue System relies on Unity UI's EventSystem and does not interact directly with the Input System package at all.
If pressing an input cancels the conversation, and if you're sure it's not one of your own scripts doing it, then some input may be assigned to the Dialogue Manager GameObject's Display Settings > Input Settings > Cancel Subtitle Input or Cancel Conversation Input. It's probably simplest to set both of these to Key = None, Button = (blank) - nothing in this field.
You do not need to register the inputs that are used by your EventSystem GameObject.
You only need to use InputDeviceManager.RegisterInputAction() for inputs that the Dialogue System reads outside of Unity UI, such as with the Selector component's Use Button. (Or the Proximity Selector component, if you're using that.)
For regular Unity UI input, such as what's used by the dialogue UI (continue button, response menu, etc.), the Dialogue System relies on Unity UI's EventSystem and does not interact directly with the Input System package at all.
If pressing an input cancels the conversation, and if you're sure it's not one of your own scripts doing it, then some input may be assigned to the Dialogue Manager GameObject's Display Settings > Input Settings > Cancel Subtitle Input or Cancel Conversation Input. It's probably simplest to set both of these to Key = None, Button = (blank) - nothing in this field.
-
- Posts: 8
- Joined: Sun Sep 01, 2024 8:43 am
Re: Responses Not Showing Up or Waiting for Input
Ok, I've reverted back to the original out-of-the-box stuff and removed the Cancel buttons and the registration, just using the basic inputs from the event handler and things seem relatively ok now.
Re: Responses Not Showing Up or Waiting for Input
Hi,
Sounds good! If any questions come up about this, let me know. I'll do my best to help.
Sounds good! If any questions come up about this, let me know. I'll do my best to help.