can I change dialogue ui skin by actor?

Announcements, support questions, and discussion for the Dialogue System.
Post Reply
gammaker95
Posts: 9
Joined: Fri Nov 20, 2015 10:48 pm

can I change dialogue ui skin by actor?

Post by gammaker95 »

Hello.

I want to change dialogue ui skin by actors.

for examples,

when narrator says, some normal box ui.
when main character and others say, some speech bubbles.

is this possible?

additional question.)

except touch input, is it possible other gesture to skip or continue dialogue (like swipe)?
User avatar
Tony Li
Posts: 22106
Joined: Thu Jul 18, 2013 1:27 pm

Re: can I change dialogue ui skin by actor?

Post by Tony Li »

Hi,

To use a different dialogue UI for a character, add an Override Dialogue UI component to the character.

The Feature Demo's Terminal has an Override Dialogue UI component that you can examine as an example.

For speech bubbles, you'll also want to read about World Space Dialogue UIs. There's an example of speech bubbles in Examples/Unity UI Examples.


For touch swipes, you'll need to provide a script that detects swipes. When it detects a swipe, it should call the dialogue UI's "OnContinue" method.
gammaker95
Posts: 9
Joined: Fri Nov 20, 2015 10:48 pm

Re: can I change dialogue ui skin by actor?

Post by gammaker95 »

Thank you for answer.

But I didn't mean that.

I wanted 3 actors in one conversation.

like this. (and speech bubble meant just example for other ui.)

1. narrator says something (narrator is not actual character. it is for describing situation.
2. player says.
3. npc says.
4. do 2-3 step util conversation stop.
5. narratro says something.
6. conversation end.

in this case, I want to change narrator's ui(it is not alert.)

is it possible?

and I wonder how actors in database and game object in hierarchy are matched.

can narrator, is gameObject in hierarchy, and narrator in database know each other?

I mean if narrator in database is in conversation, then is narrator gameObjec in hierarchy actived? (for override conversation UI, I set empty object and added "override dialogue UI" component but I didn't know how matched )
User avatar
Tony Li
Posts: 22106
Joined: Thu Jul 18, 2013 1:27 pm

Re: can I change dialogue ui skin by actor?

Post by Tony Li »

gammaker95 wrote:I wanted 3 actors in one conversation.

like this. (and speech bubble meant just example for other ui.)

1. narrator says something (narrator is not actual character. it is for describing situation.
2. player says.
3. npc says.
4. do 2-3 step util conversation stop.
5. narratro says something.
6. conversation end.

in this case, I want to change narrator's ui(it is not alert.)

is it possible?
Yes.

1. Download and import Dialogue System 1.6.1+, which fixes a warning message related to this. (Version 1.6.1+ hasn't become downloadable on the Unity Asset Store yet. If you need access to the Pixel Crushers customer download page, please PM me your Unity Asset Store invoice number.)

2. On your Unity UI Dialogue UI component, tick Find Actor Overrides.

3. On the player and npc GameObjects, add an Override Unity UI Dialogue UI Controls component and assign the UI elements you want to use for this character, or add a Speech Bubble Canvas as a child of the GameObject. The Speech Bubble Canvas prefab already has an Override Unity UI Dialogue UI Controls component. You can use the standard Unity UI editing methods to customize the appearance of the Speech Bubble Canvas for each character. To make sure these GameObjects are used in the conversation, see below.

gammaker95 wrote:and I wonder how actors in database and game object in hierarchy are matched.

can narrator, is gameObject in hierarchy, and narrator in database know each other?

I mean if narrator in database is in conversation, then is narrator gameObjec in hierarchy actived? (for override conversation UI, I set empty object and added "override dialogue UI" component but I didn't know how matched )
In general, the Dialogue System tries to match the actor's name in the dialogue database with a GameObject that has the same name in the scene.

However, when you start a conversation, you can specify the GameObjects for the primary Actor and Conversant. For example, if you use a Conversation Trigger, set the Actor and Conversant fields:
Image

The Dialogue System will use these GameObjects for the primary actor and conversant assigned to the conversation. Here's a screenshot of the primary actor and conversant dropdowns in Outline mode:
Image
(The Inspector view looks similar in Nodes mode.) The screenshot shows that the conversation's primary conversant is Private Hart. If you assign the Private Hart GameObject to the Conversation Trigger's Conversant field, the conversation will continue to use the Private Hart GameObject. But if you assign a different GameObject, it will use that GameObject wherever the conversation references the Private Hart actor.

For conversation participants 3+ (that is, not the primary actor or conversant), it always looks for a matching GameObject in the scene.

In any case, the Dialogue System does not activate any of the GameObjects. It's up to you to activate them beforehand.
gammaker95
Posts: 9
Joined: Fri Nov 20, 2015 10:48 pm

Re: can I change dialogue ui skin by actor?

Post by gammaker95 »

I sent my invoice num to your pm. please check that.

and one more question.
3. On the player and npc GameObjects, add an Override Unity UI Dialogue UI Controls component, and add a Speech Bubble Canvas as a child of the GameObject. You can use the standard Unity UI editing methods to customize the appearance of the Speech Bubble Canvas for each character. To make sure these GameObjects are used in the conversation, see below.
in here, which is GameObject it to add speech bubble Canvas as a child?

all player and npc GameObjects to want to change ui skin, or Dialogue UI Canvas?
User avatar
Tony Li
Posts: 22106
Joined: Thu Jul 18, 2013 1:27 pm

Re: can I change dialogue ui skin by actor?

Post by Tony Li »

Hi,

Please check your PM for your access information.

Add Override Unity UI Dialogue UI Controls to the player and NPC GameObjects.

Or add a Speech Bubble Canvas as a child of the player or NPC GameObject. The Speech Bubble Canvas prefab already has an Override Unity UI Dialogue UI Controls component. (I just fixed my previous reply to clarify this.) To see an example of this, open the Examples/Unity UI Examples/World Space UI Example Scene. Then inspect Player or Private Hart. They each have a Speech Bubble Canvas.

Make sure these GameObjects are used in the conversation -- for example by assigning them to the Actor and Conversant fields of the Conversation Trigger.
Post Reply