A few questions / recommendations.

Announcements, support questions, and discussion for the Dialogue System.
Post Reply
kev00
Posts: 5
Joined: Tue Jul 30, 2019 1:25 pm

A few questions / recommendations.

Post by kev00 »

Hi,

I just picked up the dialog system and so far it has been rather easy to setup.

Rather than stumble around the system a bit for a few weeks I thought I would ask for a few recommendations.

What is the best way to facilitate a party based rpg? My game has 6 characters and each character could potentially take part in a conversation. Is there a recommended way to handle this? I could be wrong, but it looks like most of the examples are based around a solo character game.

At the moment, I'm using the Sci-fi Standard Dialog UI prefab with a few modifications for portraits, but I noticed that the PC Subtitle Panel doesn't ever show, even when I have PC Subtitle Panel subtitles on it gets disabled. Ideally I'd like to show a picture of the PC who is talking.

Another issue I noticed after having integrated the system into my game is that it doesn't set the UI as the last sibling. That means it appears underneath all my other game UI (under the DoNotDestoryOnLoad scene).


Lastly, is there a recommended way to stop the system from using DoNotDestoryOnLoad? My entire game doesn't use it.
I tried the option under Other Settings but it doesn't prevent it from creating that scene.

Thanks
Kevin.
User avatar
Tony Li
Posts: 22055
Joined: Thu Jul 18, 2013 1:27 pm

Re: A few questions / recommendations.

Post by Tony Li »

Hi Kevin,
kev00 wrote: Tue Jul 30, 2019 1:55 pmWhat is the best way to facilitate a party based rpg? My game has 6 characters and each character could potentially take part in a conversation. Is there a recommended way to handle this?
Thanks for using the Dialogue System!

It works just fine with a party of PCs. Define each one as an Actor in the Dialogue Editor's Actors section, and tick their Is Player checkboxes.
kev00 wrote: Tue Jul 30, 2019 1:55 pmAt the moment, I'm using the Sci-fi Standard Dialog UI prefab with a few modifications for portraits, but I noticed that the PC Subtitle Panel doesn't ever show, even when I have PC Subtitle Panel subtitles on it gets disabled. Ideally I'd like to show a picture of the PC who is talking.
You can tell the Dialogue System to work a few different ways with PCs. (It's very flexible in this regard.)

- Tick the Dialogue Manager's Subtitle Settings > Show PC Subtitles During Line. This will show the PC's line in the PC Subtitle Panel. You may want to untick Skip PC Subtitle After Response Menu.

- To show the PC's portrait in the response menu itself, make sure UI elements are assigned to the Standard UI Menu Panel's PC Image and PC Name fields. This gets a little tricky with a party of PCs; games with multiple PCs usually don't do this.

- Untick Input Settings > Always Force Response Menu if you want the PC to automatically show its line if only one line is currently available, instead of showing a response menu with a single choice.
kev00 wrote: Tue Jul 30, 2019 1:55 pmAnother issue I noticed after having integrated the system into my game is that it doesn't set the UI as the last sibling. That means it appears underneath all my other game UI (under the DoNotDestoryOnLoad scene).
This is by design, so you have full control over the sort order. There are two ways to tweak this:

1. Increase the sort order of the Dialogue Manager's Canvas so it's on top of your other canvases.

2. Or add an instance of the dialogue UI prefab to your scene at design time, and assign it to the Dialogue Manager's Dialogue UI field in place of the prefab. This lets you set the sibling order within the canvas.
kev00 wrote: Tue Jul 30, 2019 1:55 pmLastly, is there a recommended way to stop the system from using DoNotDestoryOnLoad? My entire game doesn't use it.
Are you sure you need to stop it from using DontDestroyOnLoad? If you don't allow the Dialogue Manager to survive scene changes, then you'll lose all your data (e.g., quest states & variable values) when you change scenes, since the data is stored on the Dialogue Manager.

That said, if this isn't an issue, then:

1. Untick the Dialogue Manager's Other Settings > Don't Destroy On Load checkbox.

2. Untick the Input Device Manager's Singleton checkbox.

3. If you've added a Save System component, remove it. Put it on a separate GameObject. This GameObject absolutely does need to survive scene changes to be able to carry over saved data. It requires DontDestroyOnLoad.

If you allow the Dialogue Manager to survive scene changes, you can still have a Dialogue Manager in every scene. Just keep in mind that when coming from a previous scene, the previous scene's Dialogue Manager will survive and replace the Dialogue Manager in the new scene.
kev00
Posts: 5
Joined: Tue Jul 30, 2019 1:25 pm

Re: A few questions / recommendations.

Post by kev00 »

thank you so much for your quick response!

FYI, in my game I don't ever change the entire scene. I load and unload additive scenes.

I'm unloading and loading them in threads via.
asyncLoad = SceneManager.LoadSceneAsync("Level2", LoadSceneMode.Additive);


thus far I've managed to avoid the unique ugliness of DontDestroyOnLoad.
User avatar
Tony Li
Posts: 22055
Joined: Thu Jul 18, 2013 1:27 pm

Re: A few questions / recommendations.

Post by Tony Li »

In that case it's fine to turn it off. However, if you use the Dialogue System's save system, it will set the Save System component's GameObject to DontDestroyOnLoad. Also, if you use the save system, tick your Saver components' Restore State On Start. This tells them to restore their state (from the data saved in the save system) when the scene is additively loaded.
Post Reply