Page 1 of 1

Override Display Settings Conflicting

Posted: Mon Feb 07, 2022 3:18 pm
by eeeli
Hello,

I'm running into an issue with what I'm pretty sure is an Override Display Settings conflict. Here's some specific details of my set up.

There are multiple Dialogue UI's in my scene and I think two of them are conflicting. One is is a Standard Dialogue UI and the other is a lightly modified Custom Dialogue UI. Though they are both under the same overarching parent, they are each nested a ways down. Each of them are in distinct canvases. Each Dialogue UI parent object has has an OverrideDisplaySettings script attached to it, and the Dialogue UI & Default Canvas of those scripts are pointed a the right place. They each have very different settings in terms of the speed in which the subtitles play out.

The OverrideDisplaySettings attached to the Custom Dialogue UI seems to be override the Standard Dialogue UI's display settings. I have tried increasing the priority of the Override on the Standard UI to be well above the one on the Custom, but to no effect. I know that the Standard Dialogue UI is following the override attached to the Custom Dialogue UI because when I remove the one attached to the Custom the Standard follows the override that's attached to it.

Any help or insight into how to I should begin trouble shooting this would be greatly appreciated :)

Re: Override Display Settings Conflicting

Posted: Mon Feb 07, 2022 3:40 pm
by Tony Li
Are both Override Display Settings components in the Dialogue Manager's hierarchy, or in the hierarchy of the same conversation participant? If so, that can cause a problem.

Instead, put the Override Display Settings components on separate participants.

For example, say you have a conversational dialogue UI and a computer screen-themed dialogue UI. You want to use the conversation dialogue UI with a human NPC named Adam. You want to the computer screen-themed dialogue UI with a computer NPC named HAL.

Add an Override Display Settings component to Adam's GameObject, and point it to the conversation dialogue UI (or prefab).

Add another Override Display Settings component to HAL's GameObject, and point it to the computer-themed dialogue UI (or prefab).

When the player interacts with Adam, the conversation will use Adam's Override Display Settings. When the player interacts with HAL, it will used HAL's Override Display Settings.

--

To add another twist, let's say you can switch between two player characters.

Player character 1 uses the default dialogue UI unless overridden by an NPC's Override Display Settings).

Player character 2 uses another custom dialogue UI. To do this, add an Override Display Settings (or Override Dialogue UI) component to this other player character's GameObject.

Now the question is what happens when Player character 2 interacts with HAL? Both Player character 2 and HAL have Override Display Settings components. In this case, the Dialogue System will use the Override Display Settings that has the higher Priority value.

Re: Override Display Settings Conflicting

Posted: Mon Feb 07, 2022 3:59 pm
by eeeli
Hi!

Thanks for the helpful breakdown, as well as providing different scenarios.

I changed around my set up and it was all fixed. I was originally thinking about the overrides being linked to particular Dialogue UI's which was messing up how I structured the overrides, but I see now I need to think about them as being linked to actors in a conversation!

Re: Override Display Settings Conflicting

Posted: Mon Feb 07, 2022 4:17 pm
by Tony Li
Yup, you got it.