Search Unity

  1. Welcome to the Unity Forums! Please take the time to read our Code of Conduct to familiarize yourself with the forum rules and how to post constructively.
  2. We have updated the language to the Editor Terms based on feedback from our employees and community. Learn more.
    Dismiss Notice
  3. Join us on November 16th, 2023, between 1 pm and 9 pm CET for Ask the Experts Online on Discord and on Unity Discussions.
    Dismiss Notice

[RELEASED] Dialogue System for Unity - easy conversations, quests, and more!

Discussion in 'Assets and Asset Store' started by TonyLi, Oct 12, 2013.

  1. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,534
    Update Ink Integration Available

    The Dialogue System's Ink integration needed to be updated for Unity 2017.2. You can download the latest integration package on the Dialogue System Extras page.

    Version 1.7.7 is finishing up QA testing and should be submitted this week with I2 Localization support!
     
  2. Westy661

    Westy661

    Joined:
    Sep 13, 2015
    Posts:
    14
    Dear TonyLi, just to verify: Dialogue System will get I2 support in the next patch?
     
    Last edited: Nov 6, 2017
  3. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,534
    Yes, I2 (Inter-Illusion) Localization support will be in the next release.
     
    Westy661 likes this.
  4. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,534
    Corgi Platformer Engine & Inventory Engine Support Packages

    Version 1.7.7 (with I2 Localization support) is running a little behind to give time to add some last-minute feature requests for the articy:draft integration. In the meantime, several people have been waiting for updated support packages for More Mountains' Corgi Engine and Inventory Engine by @reuno. You can download them on the Dialogue System Extras page. The description under the download buttons contains links to updated documentation for both support packages. I have to say that it was a pleasure to write the integration for Inventory Engine. Although Inventory Engine doesn't have vendors and crafting, it handles standard inventory management, pickups, and equipping items in a straightforward, easy-to-configure manner without any frustrating gotchas.
     
    fancyferret likes this.
  5. alexhapki

    alexhapki

    Joined:
    May 8, 2015
    Posts:
    32
    Hi Tony,
    It has been a good while since I bothered you with questions. Sorry, here I come again.

    We are using JRPG Unity Quest Log Window with Dialogue System.

    • How can make fontsize for the text of the active quest at the top right?

    Do I need to access somehow GUIStyle in the GUIRoot to change label style or something similar? I am testing different resolutions, we are about to release an update to the videogame so all our GUI elements scale with resolutions, I was wondering how to control that active quest text font sizes, color, etc on the top right from scripting, not on the prefab, so we can change it depending on resolution.

    Ps. Your dialogue system is working exceptionally well, we released last month our videogame in Steam in beta-early access, a lot of things to do and bugs to fix, yet your dialogue system is flawless. We have plenty of dialogues and RPG interactions, again your Dialogue System have been essential to our project.

    Many thanks!
     
    TonyLi likes this.
  6. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,534
    That is the quest tracker HUD. If your Dialogue Manager GameObject has a Quest Tracker component, you can assign a GUI Skin. However, if you want to scale to the current resolution, I recommend using Unity UI:
    1. Remove the Quest Tracker.
    2. Make sure your Dialogue Manager has a Canvas with a Canvas Scaler.
    3. Add the prefab Dialogue System/Unity UI Prefabs/Generic/Generic Quest Tracker HUD as a child of the Canvas.
    First make sure this works in your game. Then customize it to look the way you want.

    Thanks! :)
     
  7. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,534
    Interesting Dialogue Articles on Gamasutra

    Gamasutra recently published two articles that dialogue writers may find interesting:

    Worldbuilding With NPC Dialogue: A Beginner's Guide
    (Natalie Mikkelson)

    Highlights:
    • Building the world
    • Establishing the style
    • Dialogue types: one-liners, informers, companion interludes, moral dilemmas, etc.
    • Tips for interesting dialogue: cut the small talk, don't keep secrets so secret, avoid repetition
    • Also contains some helpful templates


    5 Radical Ideas for Dialogue Systems
    (Bobby Lockhart)

    Highlights:
    • Symmetric Dialogue. While the player considers (hovers over) possible responses, the NPC shows a reaction. You can do the same in the Dialogue System using the Hover Response Button UI on the Dialogue System Extras page.
    • Trees Within Trees. Break up conversation trees into smaller pieces (e.g., words or phrases) and combine them into whole thoughts by traversing the tree. This is more just the way you design your trees, nothing technically challenging about how you'd do this in the Dialogue System.
    • Magnetic Poetry. As he writes, this is prone to combinatoric explosion -- that is, each "word magnet" multiplies the number of possibilities. Worth thinking about, but probably not a practical way to write dialogue.
    • Free Text Parsing. Reminds me of the Dialogue System's Wit.ai (voice recognition) integration example. You could also use the TextInput() sequencer command and scan the text for keywords.
    • Timing-based Choices. Just use the Dialogue System's response menu timer for this.
     
  8. EternalAmbiguity

    EternalAmbiguity

    Joined:
    Dec 27, 2014
    Posts:
    3,144
    I'd love to discuss those, but this isn't the place...

    5 is my idea! :eek:
     
    Last edited: Nov 14, 2017
  9. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,534
    If you decide to start a thread, say in the Game Design section, throw a link here so we can join you.

    Edit: I forgot to mention in my previous post that one idea is to use a timer in conjunction with DialogueManager.UpdateResponses() to dynamically update the responses based on conditions while the menu is visible.
     
    Last edited: Nov 14, 2017
    EternalAmbiguity likes this.
  10. EternalAmbiguity

    EternalAmbiguity

    Joined:
    Dec 27, 2014
    Posts:
    3,144
  11. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,534
    Last edited: Nov 21, 2017
    BackwoodsGaming likes this.
  12. flashframe

    flashframe

    Joined:
    Feb 10, 2015
    Posts:
    730
    Sorry to hear that, Tony. Best wishes to your family. Hope all is ok now.
     
  13. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,534
    Thanks! All's okay now. :)
     
  14. BackwoodsGaming

    BackwoodsGaming

    Joined:
    Jan 2, 2014
    Posts:
    2,229
    Totally missed the medical emergency mentioned in your update post, Tony. Hope it was nothing major and glad to hear all is okay now! As highly as you support your assets and as often as you do updates, I'm sure nobody will mind the delay. Keep up the awesome work!
     
    hopeful and TonyLi like this.
  15. sskenth

    sskenth

    Joined:
    Sep 23, 2016
    Posts:
    54
    So I just bought Dialogue System in the black Friday sales since I wanted to add a JPRG novel style dialogue to my existing game.

    As soon as I started using it, I realised it would be very difficult to do, as there didn't seem to be any tutorials or explanations on how to achieve the JRPG novel style.
    On further research, I stumbled on the Visual Novel Dialogue System extension, which seems to be able to do the additional things I require.
    A little frustrated that the regular Dialogue System doesn't do whats required even though it says its a "complete robust solution".:p I did just put it down to lack of research on my part, I guess there is a difference between a JRPG and a novel style JRPG conversation?

    My main issue is I'm really shocked at the price for the Visual Novel pack. I honestly can't believe its priced so high since its an extension.
    Screen Shot 2017-11-21 at 18.59.35.png

    Is this some sort of mistake? Or am I missing something here? I hate to be one to complain or to leave bad reviews, which is why I'm posting on the forum in the hope that I'm mistaken. If I'm not, I honestly feel that anyone else who wants to buy the Dialogue system for Unity should at least be a told on the unity asset page of hidden costs for extensions.

    Alot of people talk about how powerful Dialogue System is, so if it is possible to achieve the JRPG novel style without spending over $80 to buy another extension, please let me know. I would have been ok spending around another $30 more for the ext, but I just can't justify that kind of spending($80) when I've already spent money on a tool I expected to be complete in the first place.

    I hate to be "that guy" so I'm really hoping either the price of the ext is a mistake(since it does say $30 at times) and/or I've failed to realise how dialogue system is powerful enough to do everything with just a bit more effort from me.

    Looking forward to some clarity,

    Thank you

    -Sat
     
  16. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,534
    Hi Sat - Thanks for buying the Dialogue System! I think you can achieve what you want without having to buy anything else.

    If you just want a dialogue UI in a JRPG or visual novel style such as below:

    then use these steps:
    1. Add the Dialogue Manager prefab (from the Prefabs folder) to your scene if you haven't already.
    2. Expand Dialogue Manager > Canvas in your scene, and delete or deactivate the Generic Unity UI Dialogue UI.
    3. From the Prefabs / Unity UI Prefabs folder, add either "JRPG Unity UI Dialogue UI" or "JRPG2 Unity UI Dialogue UI" as a child of Dialogue Manager > Canvas. These are starter UI layouts like the ones shown above, which you can customize to your liking.
    Let me know if you have any questions. I'll be happy to work with you to get the UI to look and work exactly the way you want.

    Alternatively, the Dialogue System Extras page has a lot of freebies, including a free visual novel starter framework. (It's the fourth download button under EXTRAS.) This is an entire game framework, though, so it might not be what you want.

    This product is made and sold by another company, Stranger Games. I'm not involved in its development or pricing.
     
    BackwoodsGaming and hopeful like this.
  17. sskenth

    sskenth

    Joined:
    Sep 23, 2016
    Posts:
    54
    Hi Tony,

    Thank you for your fast and fair response. I'll take a look at the free visual novel framework you suggested and take it from there. If it just requires some extra work to get it to do whats required I've got nothing against that.
    I appreciate you offering your help too.

    Thank you, I'll let you know how I get along.

    -Sat
     
  18. ppoppojoa

    ppoppojoa

    Joined:
    Oct 12, 2017
    Posts:
    5
    Hi, I have a Articy:draft3 and Dialogue System for Unity.
    When I tried to import localization file (*.xlsx) by using 'window > Dialogue System > converters > Articy:Draft localization importer' menu in Unity,
    The localization field was created only on the conversation section, but not on Actors, Quests/Items, Locations sections.
    Is it normal or something wrong?
     
  19. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,534
    Hi @ppoppojoa - The localization importer creates localization fields for Actors, Quests/Items, and Conversations. The articy:draft Technical Name of Actors and Quests/Items need to start with "Ntt", which is the default setting in articy. When you click the Import Excel Files button, do you see any messages like this in the Console window?

    Dialogue System: filename: Don't know how to localize technical-name.property.​
     
  20. m0rr0ws0n

    m0rr0ws0n

    Joined:
    Sep 18, 2014
    Posts:
    65
    This dialog system is not working when I try to do OnUse(). Maybe its something with my other asset because when I setup a clean scene and follow your tutorial with sergeant greaves, it works. When I try to integrate it into my scene, doing the exact same thing, it doesn't work. The only asset I'm really using though is this https://www.assetstore.unity3d.com/#!/content/4208

    It works when I set the trigger to OnStart(). When I try to do OnUse(), I don't get a message when I'm in proximity and the use key doesn't do anything. Here's the steps I did:

    1. Create a dialogue database and configure convos and actors.
    2. Go through the dialogue manager wizard to create that. Drag the database onto the initial dialogue slot
    3. Go through the Player and NPC wizards and set them up for onUse.

    Any help? I'd like to get this to work.
     
  21. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,534
    Hi @m0rr0ws0n - Thanks for buying the Dialogue System!

    It sounds like you're using the Proximity Selector on your player. The Proximity Selector uses standard Unity physics, so you'll need to set up the NPC to register standard physics trigger collisions. On your NPC, add a Rigidbody and another Collider (typically a SphereCollider) with Is Trigger ticked. Set the SphereCollider's Radius to the distance at which you'd like the player to be able to talk to the NPC. (The wizard doesn't add these automatically because it doesn't know whether you want to set up a 3D or 2D scene.)

    That should do it. If it doesn't, let me know what's going on and I'll try to help.
     
  22. m0rr0ws0n

    m0rr0ws0n

    Joined:
    Sep 18, 2014
    Posts:
    65
    Thanks that did it! :cool:

    One more question, the "key to press" message is in the way of the dialogue at the top. Anything we can do about that?
     
  23. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,534
    Sure! In the Player Setup Wizard, on the Gameplay/Conversation Transition page, tick "Disable gameplay components during conversations". This will add a Set Component Enabled On Dialogue Event component to the player and configure it to disable the Proximity Selector during conversations.

    You can add your own components to the OnStart and OnEnd lists, too. For example, you might want to disable the RPGCamera and RPGController components so the player can't walk away during conversations.

    (On the other hand, if you do want to allow the player to move during conversations, but you want to stop the conversation when the player walks away, inspect the NPC's Conversation Trigger and tick "Stop Conversation On Trigger Exit".)
     
  24. gferrari

    gferrari

    Joined:
    Jan 14, 2015
    Posts:
    135
    Hi! Maybe it's a silly question. How do I make the next button in the dialog UI and this follow the next node? I want it to be "Text, text, text - Button next (next node) , and again... text, text Button next (next node), and close in the last one", like the traditional dialog... Or what tutorial / link documentation should I read. (I'm new) Thank you very much! upload_2017-11-24_0-30-56.png
     
  25. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,534
    Hi @gferrari - I think what you're looking for is called the continue button in the Dialogue System. Inspect your Dialogue Manager GameObject, and set Display Settings > Input Settings > Continue Button to Always. There are other options, too, but Always is a good place to start.
     
    gferrari likes this.
  26. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,534
    BackwoodsGaming and gferrari like this.
  27. MrG

    MrG

    Joined:
    Oct 6, 2012
    Posts:
    357
    @TonyLi Could you please compare / contrast Dialogue System with Quest Machine? They're priced the same (ignoring the BF Sale) but there seems to be a lot of overlap. Thanks!
     
  28. hopeful

    hopeful

    Joined:
    Nov 20, 2013
    Posts:
    5,630
    I'm sure Tony will give you a good answer, but really it is kind of what you would think ... the Dialogue System is more specialized for complex and full-featured dialogue, and it has a modest quest system attached to it, while Quest Machine is all about setting up quests in various ways, with a yes/no type dialogue attachment so you can - for instance - run a demo with a quest giver and a player receiving a quest.

    If your game is going to be more action and light on chitchat, like my game, you could probably get by with just QE. But if your game is more like a novel, where a lot of choices are presented in dialogue and the action is fairly simple (find this, retrieve that), then DS would be the thing for you.

    Of course, if your game dips heavily into both worlds, you might need both QM and DS. An integration of the two is under development.
     
    MrG likes this.
  29. MrG

    MrG

    Joined:
    Oct 6, 2012
    Posts:
    357
    Thanks, @hopeful

    While I expect to have heavy use of the DS feature set, in digging through the tremendous docs there doesn't seem to be anything I can't make with the quest system it includes, especially since it can call out to C# where everything's on the table, and I think I have a rather active imagination.

    If you see a shortfall there, please share. Thanks, again.
     
  30. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,534
    Thanks, @hopeful! You summed it up well.

    Other Quest Machine features that the Dialogue System doesn't have are:
    • Procedural quest generator
    • Node-based visual quest editor with live runtime view
    • More gameplay-related quest management features such as spawners
    So, in brief, Quest Machine aims to make quest design easier (more point-and-click) and also let you procedurally generate quests.

    However, plenty of games get a lot of mileage out of the Dialogue System's quest subsystem, including MMOs and full-length RPGs.
     
    MrG likes this.
  31. Elzbach

    Elzbach

    Joined:
    Dec 5, 2014
    Posts:
    29
    I hope I'm not overlooking something, but I followed this tutorial video to set up my dialogue and a few things seem to be ignored. I used the default prefab to test like in the video, but the speaker's name always comes up as "GameObject". Also the tag "[pic=#]" seems to be ignored. The portrait picture for who is speaking is not changing even though I added a few portrait pictures like in the video.
     
  32. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,534
    Hi @Elzbach! Rename your GameObject to the name you'd like to show in the UI, or add an Override Actor Name component and set the name there. This often throws people, but it's by design. It allows you to re-use the same conversation for multiple GameObjects (e.g., multiple NPCs wandering a village) and show each NPC's name instead of showing the actor name defined in the conversation in the Dialogue Editor. See How GameObjects Are Associated With Conversations if you'd like to read more about this.

    Is the [pic=#] tag in your dialogue entry node's Dialogue Text? For example:
    • Dialogue Text: "Thanks! I <i>love</i> ice cream! [pic=2]"
    If so, make sure the dialogue entry node's Actor dropdown is set to the actor to which you added portrait pictures.
     
  33. Elzbach

    Elzbach

    Joined:
    Dec 5, 2014
    Posts:
    29
    Thanks. That helps me set the correct speaker name in the conversation, but I have multiple actors speaking in the conversation and the Conversation Trigger Script only lets me set the primary Actor and Conversant. For instance, in the conversation the player is speaking to one character, and then a second character takes over to talk to the player. How would I add that second character's transform so that their name shows up in the speaker box? Right now it continues to use the name of the first character the player is speaking to even though that new node has the Actor as the new character. In the database actor tab I also have "Use Display Name" checked.
     
  34. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,534
    For additional characters beyond the primary Actor and Conversant, the Dialogue System will search the scene for a GameObject whose name matches the character's actor name in the dialogue database. However, if you add an Override Actor Name component to the GameObject and set the actor name, the Dialogue System will use this GameObject without searching the scene.
     
  35. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,534
    Black Friday Sale Ends Today

    Just a quick reminder that the Black Friday Sale ends today. If the Dialogue System is on your wish list, get it soon for 50% off.

     
  36. Frax228

    Frax228

    Joined:
    Jul 19, 2016
    Posts:
    48
    Hi.
    Legacy Unity GUI Prefabs work with Dialogue System Menu Framework?
    Error
    NullReferenceException: Object reference not set to an instance of an object
    PixelCrushers.DialogueSystem.MenuSystem.SelectablePanel.CheckFocus () (at Assets/Dialogue System Extras/Dialogue System Menu Framework/Scripts/SelectablePanel.cs:185)
    PixelCrushers.DialogueSystem.MenuSystem.SelectablePanel.Update () (at Assets/Dialogue System Extras/Dialogue System Menu Framework/Scripts/SelectablePanel.cs:172)
     
  37. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,534
    Hi @Frax228 - Make sure your scene has an EventSystem.
     
  38. Frax228

    Frax228

    Joined:
    Jul 19, 2016
    Posts:
    48
    Thanks
     
  39. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,534
    BackwoodsGaming likes this.
  40. Elzbach

    Elzbach

    Joined:
    Dec 5, 2014
    Posts:
    29
    Can you show me the single line of Lua code to call a simple SequencerCommand? I made a custom one following the template, but the example for calling it shown here http://www.pixelcrushers.com/dialogue_system/manual/html/faq.html is a little too complicated to understand for me. My command script is called "SequencerCommandStartGame" and takes no arguments.
     
  41. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,534
    Hi @Elzbach! Sequencer commands are different from Lua. Put your sequencer commands in the Sequence field of your dialogue entry node, or in the Sequence field of a Sequence Trigger. This page contains more information about the Sequence field.



    Since your custom sequencer command script is named SequencerCommandStartGame, you can use it in a Sequence field like this:
    • NPC: "Are you ready to start the game?"
      • Player: "Yes. Let's play!"
        Sequence: StartGame()
    (Just omit the "SequencerCommand" part of the script name.)

    For example, your custom script might look something like this:

    SequencerCommandStartGame.cs
    Code (csharp):
    1. using UnityEngine;
    2. using PixelCrushers.DialogueSystem;
    3.  
    4. public class SequencerCommandStartGame : MonoBehaviour
    5. {
    6.     void Start()
    7.     {
    8.         /* your code here to start game */
    9.         Stop();
    10.     }
    11. }
     
  42. Elzbach

    Elzbach

    Joined:
    Dec 5, 2014
    Posts:
    29
    Ah, thanks. I think I understand it now. The only thing now is I get this warning when that node is reached:
    "Dialogue System: Syntax error 'Expected '('' at column 11 row 1 parsing: Sequence: StartGame()"
    The code for my SequencerCommandStartGame is just this:
    Code (csharp):
    1.  
    2. using UnityEngine;
    3. using UnityEngine.SceneManagement;
    4. using System.Collections;
    5. using PixelCrushers.DialogueSystem;
    6.  
    7. namespace PixelCrushers.DialogueSystem.SequencerCommands {
    8.  
    9.     public class SequencerCommandStartGame : SequencerCommand { // Rename to SequencerCommand<YourCommand>
    10.  
    11.         public void Start() {
    12.            
    13. SceneManager.LoadScene("One");
    14. Stop();
    15.         }
    16. }
    17.  
    18. }
     
  43. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,534
    In the Sequence field, do you just have this?

    StartGame()
    You don't need to put "Sequence: " in the Sequence field.

    If that doesn't help, would you please post a screenshot of the inspector for that node?

    BTW, if you're only loading a scene, you can use the built-in LoadLevel() command instead:

    LoadLevel(One)
     
  44. Elzbach

    Elzbach

    Joined:
    Dec 5, 2014
    Posts:
    29
    I had
    Sequence: StartGame()
    in the Sequence field.
    Now that it's just
    StartGame()
    everything works now.

    Thanks so much!
     
  45. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,534
    Happy to help!
     
  46. Elzbach

    Elzbach

    Joined:
    Dec 5, 2014
    Posts:
    29
    Are animation variables called with the Sequencer Commands not persistent? I called a SetTrigger for an animation with one node in the OnDestroy() and then by the next node the animation reset. How would I call permanent animation changes?
     
  47. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,534
    Hi @Elzbach - Sequencer commands such as AnimatorTrigger() work the same as calling the Animator's SetTrigger() method directly. Internally, the AnimatorTrigger() sequencer command finds the specified GameObject, gets a reference to its Animator component, and calls the Animator's SetTrigger() method.

    Does your animator controller perhaps have a transition that makes it reset right away? Or is another script (e.g., unrelated to the Dialogue System) also setting the animator to something different?

    What do you mean by "in the OnDestroy()"?
     
  48. Elzbach

    Elzbach

    Joined:
    Dec 5, 2014
    Posts:
    29
    I was calling an animation trigger with
    Code (csharp):
    1.  
    2.     public void OnDestroy() {
    3.         // fade to map object
    4.         GameObject[] bgPanels = GameObject.FindGameObjectsWithTag("bgfadepanel");
    5.         foreach (GameObject pan in bgPanels) {
    6.             pan.GetComponent<Animator>().SetBool("nowBlack", false);
    7.             pan.GetComponent<Animator>().SetTrigger("toClear");
    8.         }
    9.     }
    10.  
    in a custom sequencer command I wrote.

    My animator has an idle animation, a transition animation, and then a second type of idle animation. The idea was that it would transition to this second idle animation and stay there until another trigger for it is called. Nothing I wrote outside of the Dialogue System is reseting it.
     
  49. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,534
    Are there any errors in Unity's Console window? Maybe it's not finding an Animator on one of the GameObjects and exiting early with a NullReferenceException.

    Have you tried adding a Debug.Log() line in OnDestroy() to make sure it's actually getting called?

    Please feel free to send an example project to tony (at) pixelcrushers.com. I'll be happy to take a look.
     
  50. Elzbach

    Elzbach

    Joined:
    Dec 5, 2014
    Posts:
    29
    So I solved my problem with the animations by using AnimatorTrigger().

    My next issue is with the Text Mesh Pro integration. I've replaced each "Text" component with a "Text Mesh Pro UGUI" component. Next on "Generic Unity Dialogue UI" gameObject I replaced the "Unity UI Dialogue UI" script with the "Text Mesh Pro Dialogue UI" script. I linked all of the components in the inspector like in the "Unity UI Dialogue UI" script. I disabled the "Unity UI Dialogue UI" script to test the new Text Mesh Pro one. It seems like all of the Text Mesh Pro gameObjects in the UI were disabled on play. I manually enabled them during play time and the text fields never updated with the dialogue from the database. I was still able to press the continue button however and the picture for the character updated correctly like the dialogue was displaying even though it wasn't. I exited play mode and then removed the disabled "Unity UI Dialogue UI" script from the "Generic Dialogue UI" gameObject. This left only the "Unity UI Scrollbar Enabler" script and the "Text Mesh Pro Dialogue UI" script on the "Generic Dialogue UI" gameObject. When I played this time it was like there was no Dialogue UI script at all. The dialogue did not hide to wait for the conversation to start. I switched the conversation to begin On Start and the dialogue never updated. In the "Dialogue System Controller" for the scene, my "Generic Unity UI Dialogue UI" was indeed linked to the "Dialogue UI" field under the "Display Settings" in the "Dialogue System Controller Script".

    I'm frankly stumped where the disconnect is occurring here. The example scene for the Text Mesh Pro integration uses a more active type of dialogue in a 3D scene. I am trying to build my dialogue off the recent tutorial that uses a 2D scene and the provided "Dialogue Manager" prefab. I would just like to exchange the Text components for Text Mesh Pro ones.