Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    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,670
  2. Sigma266

    Sigma266

    Joined:
    Mar 25, 2017
    Posts:
    99
    Hi, Tony. I have weird issue that doesn't really affect my project, but it kinda bothers me... Anyway, everytime a dialogue line is spoken, I get an error like the ones in the picture I uploaded. The error takes me to that highlighted line of code.
    Do you know what this means?
     

    Attached Files:

  3. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,670
    Hi @Sigma266 - If you can update to version 2.0.8, the error should go away. (I think it was fixed in 2.0.6.)
     
  4. Sigma266

    Sigma266

    Joined:
    Mar 25, 2017
    Posts:
    99
    I just updated. It's still going unfortunately.

    EDIT: Also ouch, either the Proximity Selector or Usable component stopped working with the update because I can't access conversations through them right now.
     
    Last edited: Nov 26, 2018
  5. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,670
    Please import the attached patch. It should take care of the issue.

    Version 2.0.7 updated Selector and ProximitySelector to observe input replacements such as Rewired. (Prior to 2.0.7, they were the only scripts that still used only standard Unity Input.) If you're using Rewired, you may need to define the Use Button in your Rewired Input Manager.

    If that's not the issue, are you getting any warning or error messages? Can you provide more details? Please also feel free to send an example scene to tony (at) pixelcrushers.com.
     

    Attached Files:

  6. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,670
    Please stand by. I'm investigating a potential issue when using Rewired.
     
  7. Sigma266

    Sigma266

    Joined:
    Mar 25, 2017
    Posts:
    99
    No, I don't use Rewired. And nope, no warnings or error messages or anything, I press a button and nothing happens. It was working just like it was supposed to before I updated the Dialogue System. Something must have changed between one of the newer updates.

    EDIT: Alright, I figured out the issue. I noticed that the Proximity Selector wasn't able to check if there were triggerx(colliders), so I checked the code, and the lines of code that checked for 2D triggers were commented out(well, not exactly commented out, but it's something similar and I don't know how it's called haha). So yay, but there's still that weird bug that didn't get fixed with the updates. Any ideas?
     
    Last edited: Nov 27, 2018
  8. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,670
    It was a false alarm on Rewired anyway. In my test scene, I had accidentally cleared the Use Button field with an errant keystroke.

    If you're working in 2D, please try this: From the menu bar, select Tools → Pixel Crushers → Common → Misc → Enable Physics2D Support...

    Version 2.0.5, released October 23, was updated to support a potential gotcha introduced by Unity 2018.2+. In 2018.2+, it's possible to disable Physics2D. This would cause any code that references 2D stuff, such as Collider2D and Physics2D.Raycast, to fail to compile. To guarantee that the Dialogue System always compiles when first imported, it doesn't include 2D code unless you've selected that menu item above to enable it. (Here's more info in case you're curious.)

    That's by far the biggest change in the past several versions. You can review the Release Notes if you want to check for any other changes that might be of interest to you.
     
    Sigma266 likes this.
  9. Sigma266

    Sigma266

    Joined:
    Mar 25, 2017
    Posts:
    99
    Woah that's big, I didn't know about that.
     
  10. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,670
    Does that fix the issue you're seeing?

    I hated to make the change, but Unity 2018.2 forced it. The change was noted in the 2.0.5 release post, but that was a couple pages back.
     
    Sigma266 likes this.
  11. Sigma266

    Sigma266

    Joined:
    Mar 25, 2017
    Posts:
    99
    Sorry if it took me a while to answer, it was super late for me haha. Yes, thank you, it did fix the Proximity Selector's issue, but the one I mentioned in my first post is still there, throwing errors at every line a character speaks. It doesn't affect my project, luckily... But it fills my console with errors every time and it's quite annoying. Thank you very much for your attention!
     
  12. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,670
    Did you import the package that I attached to this post?
     
    Sigma266 likes this.
  13. Sigma266

    Sigma266

    Joined:
    Mar 25, 2017
    Posts:
    99
    OMG lol, I'm such an idiot! I didn't even notice you attached a file to your post! This works perfectly, thank you SO MUCH!
     
  14. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,670
    Great, glad to help! :)
     
  15. magique

    magique

    Joined:
    May 2, 2014
    Posts:
    4,030
    @TonyLi Is there any guidance anywhere on extending the save system to include custom objects?
     
  16. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,670
    Even better, there's a complete, thoroughly-commented starter script. It's Plugins / Pixel Crushers / Common / Templates / SaverTemplate.cs. Take a look at an existing saver such as PositionSaver.cs to see a good example, then copy SaverTemplate.cs and fill in your code.
     
    magique likes this.
  17. lo-94

    lo-94

    Joined:
    Nov 1, 2013
    Posts:
    282
    Hey all. So I'm using this asset along with UFPS and have persistent data working between scenes. Currently when switching scenes, on the first frame the player is in the initial start position, and then after that frame it teleports over to the stored position. I was curious what kind of workarounds people have for this when switching between scenes.

    Is there a way to call the Fade() sequence command within a C# script? I figure just fading in and out from black would be the way to go
     
  18. DMRhodes

    DMRhodes

    Joined:
    May 21, 2015
    Posts:
    81
    Hey, I have a couple of questions again please. Hope that's okay.

    1) I have a dialogue system boolean variable that starts as false and I want to set it to true after the player beats the game for the very first time. That's simple enough. The thing is though that there are multiple save slots and I need this specific variable to always stay true forever once the player has beaten the game even when the player loads different saved game states that haven't reached the end yet. How would you suggest achieving this?

    2) Is it possible to make a keyboard hotkey in the unity editor so that when pressed the currently selected dialogue system node automatically creates a new child node? While I realize this might seem like an absurd thing given that it's only two clicks to do anyways, I feel like I could really streamline things with such a tool.

    Thank you for your time as always.
     
  19. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,670
    Hi @DespairBear - Fading in and out is exactly what the demo scene does, and it doesn't require any scripting. Take a look at the Dialogue Manager in DemoScene1. It has a Scene Transition Manager component. The Scene Transition Manager can play animations before leaving the old scene and after entering the new scene, and it can also show an optional loading scene while it's loading the new scene. In the demo, it just plays a fade animation using a SceneFaderCanvas child GameObject.

    That said, if you want to call the Fade() sequencer command within a C# script, use this:
    Code (csharp):
    1. DialogueManager.PlaySequence("Fade(stay,1)"); // Fade out over 1 second and stay black
    and
    Code (csharp):
    1. DialogueManager.PlaySequence("Fade(in,1)"); // Fade back in over 1 second
    Hi @Candy-Bomber - Always okay! I'm here to help!

    Dialogue System variables are specific to saved games. I suggest saving this Boolean value in PlayerPrefs instead.

    The Dialogue Editor has a bunch of keyboard shortcuts:

    Code (text):
    1. KEY COMBO  ALTERNATE  OPERATION
    2. Home       —          Move to top left of canvas.
    3. PgUp/PgDn  —          Page canvas up/down.
    4. Delete     Backspace  Delete current node or link.
    5. Ctrl+Alt+D Cmd+Alt+D  Duplicate current node or link.
    6. Ctrl+Alt+N Cmd+Alt+N  Create new node.
    7. Ctrl+Alt+C Cmd+Alt+C  Copy current selection to clipboard.
    8. Ctrl+Alt+V Cmd+Alt+V  Paste clipboard.
    9. Alt+Click  —          Create link from selected node.


    Use Ctrl+Alt+N to create a new node.

    (I noticed a couple typos in the table in the online manual. I've fixed them for the next update.)
     
  20. DMRhodes

    DMRhodes

    Joined:
    May 21, 2015
    Posts:
    81
    Thank you for your help. :)
     
  21. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,670
    Glad to help!
     
  22. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,670
    Clever Ways to Give Quest Rewards

    Someone emailed me about giving quest rewards, and it reminded me to post a solution that a couple clever studios came up with. This is a semi-advanced article, but I wanted to share it because it might be of general interest.

    I'll first cover general ways to give quest rewards.

    If the player completes the quest inside a "turn in" conversation, you can use a dialogue entry node's Sequence or Script field.

    The Sequence field plays sequencer commands (tutorial). You might be able to use the built-in SendMessage() sequencer command. But an alternative is to write a custom sequencer command (tutorial) that runs your functions.

    Alternatively, the Script field runs Lua functions (tutorial). You can register your C# functions as Lua functions and use them in the Script field.

    Both are pretty easy to do, and you can find starter template scripts in Plugins / Pixel Crushers / Dialogue System / Templates / Scripts.

    Another way is to assign methods to the OnQuestStateChange UnityEvent in a Dialogue System Events component.

    Lastly, you can add a method "OnQuestStateChange(title)" to the Dialogue Manager. This is one of the script messages that the Dialogue System supports. The Dialogue System will automatically call this method whenever a quest state changes. You can check QuestLog.GetQuestState() to check the current state. If it's successful, reward the player. Example:

    Code (csharp):
    1. using PixelCrushers.DialogueSystem;
    2. ...
    3. void OnQuestStateChange(string title) {
    4.     if (QuestLog.GetQuestState(title) == QuestState.Success) {
    5.         // Give rewards based on the quest (identified by title).
    6.     }
    7. }
    Some studios add custom fields to their quests to record what rewards to give (e.g., "XP" and "Gold" fields). A few studios register custom Lua functions, and then put Lua code in the quest's custom reward field:

    rewardLua.png

    When the player completes the quest, it simply runs the custom reward field through Lua:

    Code (csharp):
    1. void OnQuestStateChange(string title) {
    2.     if (QuestLog.GetQuestState(title) == QuestState.Success) {
    3.         Lua.Run(DialogueLua.GetQuestField(title, "Reward").asString);
    4.     }
    5. }
    This allows the designer to specify quest rewards without having to touch any C# code. If you're using a third party editor such as articy:draft or Chat Mapper, your author can set up rewards like this without having to touch Unity at all.
     
  23. lo-94

    lo-94

    Joined:
    Nov 1, 2013
    Posts:
    282
    Ah so I see why I'm having an issue. I believe it's cause I'm calling LoadLevel directly, I'm not utilizing the sequence commands. Is there an easy way to call LoadLevel and have the Scene Transition Manager trigger the transition? I don't want any other commands called, and it appears the LoadLevel sequence command contains many more calls than just the LoadLevel Tools command.

    When I use the LoadLevel sequence command, it seems to screw up UFPS's spawn point system
     
    Last edited: Nov 29, 2018
  24. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,670
    What about using SaveSystem.LoadScene()? Although this might give you the same behavior as the LoadLevel() sequencer command. What's going on with UFPS's spawn point system? (BTW, SaveSystem.LoadScene() does let you specify a spawnpoint.)
     
  25. lo-94

    lo-94

    Joined:
    Nov 1, 2013
    Posts:
    282
    I found a workaround which was to remove the FP Persistent Player object from the UFPS controller. I'm not using UFPS's inventory directly for most of the game so a lot of that was unnecessary anyways.

    One issue I'm running into is that when I transition to the next scene, my Canvas Group's Alpha (on the SceneFaderCanvas) is being reset to 0 so it hides instantly instead of fading in.
     
  26. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,670
    Is the SceneFaderCanvas on a GameObject that stays active during the scene change? For example, in the Dialogue System's demo, SceneFaderCanvas is a child of the Dialogue Manager GameObject. You might also compare the settings on the demo's SceneTransitionManager component with yours to make sure the animation triggers are set up similarly.
     
  27. lo-94

    lo-94

    Joined:
    Nov 1, 2013
    Posts:
    282
    Actually now that I've tried it, I'm actually seeing that the transition in the demo scene doesn't work as intended. It isn't fading in, it just suddenly pops in and I'm seeing the same issue as I am running into in the demo.
     
  28. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,670
    Thanks for letting me know. Looks like I broke the animator controller while dual-purposing it for some dialogue UI prefabs. I've attached an update to this email. It assigns a separate animator controller to the SceneFaderCanvas prefab, which is a better idea anyway to avoid confusion.

    Feel free to change it with a different animator controller in your own project, of course. For example, you might want to wait a second or two before actually fading into the new scene, or you could play some kind of loading spinner or other distraction for the player at the end of the fade-out animation.
     

    Attached Files:

  29. lo-94

    lo-94

    Joined:
    Nov 1, 2013
    Posts:
    282
    Awesome, thank you so much

    One more quick question, on the Condition Observer, even with the "Once" checkbox clicked, when my Lua condition evaluates true, the condition keeps evaluating and does not deactivate.
     
  30. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,670
    Patch attached. Note that this checkbox only disables the instance of the component in the active scene. If you leave the scene and return, the Condition Observer will be enabled again since it's a new instance in the newly-loaded scene. If you want it to be persistent, you can use a Persistent Active Data component to activate/deactivate it based on more persistent values such as a Dialogue System variable.
     

    Attached Files:

  31. DMRhodes

    DMRhodes

    Joined:
    May 21, 2015
    Posts:
    81
    Quick update regarding my previous post. I've remapped the new node key combination (Ctrl+alt+n) to an empty FN-Multimedia key on my keyboard, so now I can create a new node with a single key press. I feel like this has sped up my progress dramatically!

    Anywho, I'd like to make a couple of feature suggestions for you to please consider in the future if that's alright?

    • Make it possible to set the "Links to" field when multiple dialogue nodes are selected. I often find myself having parallel nodes that lead to the same place afterwards, so it would be nice to just have to select them all once and fill out the field rather than click through them individually.
    • The 'arrange nodes' feature is theoretically quite useful for clean up, but in practice I find it often breaks the structure of longer conversations making them a nightmare to actually read through when I need to change something afterwards, especially if there are multiple branches with multiple choices each. Would it be possible to create an 'arrange selected nodes' feature that only rearranges the currently selected nodes?
    • Would it be possible to have more custom node colors available for actors? Perhaps using the Unity in-editor color wheel? I have over 50 different actors in my project currently and it would be a little easier to differentiate them during conversation creation if I could assign everyone a unique color rather than having to rely on the current seven available node colors.

    Thank you for your time as always. Regards
     
  32. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,670
    Thanks for the suggestions! I'll add these to the roadmap. I'll try to get them into version 2.1.0. (Version 2.0.9 is coming out very soon, but it's just a few bug fixes and optimizations, no new features.)

    For the third one, in the meantime what about showing the actors' portraits? (Menu > Show > Show Actor Portraits) It might look a little cluttered, but then again it might be helpful.
     
    Last edited: Nov 29, 2018
  33. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,670
    Veteran Voice Actors' SWAAT Team Provides Free Table Reads

    This might be of interest to some of the larger projects that are using the Dialogue System with voiced dialogue. The voice actors behind Mass Effect, Firewatch, and Gone Home are launching a free service to perform pre-casting table reads (including remote virtual table reads) of game projects' dialogue scripts. You can find more information on the Halp Network's SWAAT page.

    gamesindustry.biz source
     
    superwendel likes this.
  34. DMRhodes

    DMRhodes

    Joined:
    May 21, 2015
    Posts:
    81
    Thank you for the idea. I'll try that!

    I'm afraid I have a new problem now though. Has anything changed regarding the save system in the last 2-3 updates? I had a nicely functional system set up using a combination of persistent active data components and the GameSaver script. Unfortunately something seems to has exploded somewhere along the line and I can't pinpoint what the problem is because I haven't tested the save system since I originally got it working. My Console is getting spammed by 999+ errors every time I try to load a test game now. I'll post some of the errors but note that it's only like 2 different errors that repeat hundreds of times.


    Dialogue System: Lua code 'return Conversation[21].Dialog[163]' threw exception 'Lookup of field '163' in the table element failed because the table element itself isn't in the table.'
    UnityEngine.Debug:LogError(Object)
    PixelCrushers.DialogueSystem.Lua:RunRaw(String, Boolean, Boolean) (at Assets/Plugins/Pixel Crushers/Dialogue System/Scripts/Lua/Lua Wrapper/Lua Interpreter Wrapper/Lua.cs:218)
    ...


    MissingReferenceException: The object of type 'GameObject' has been destroyed but you are still trying to access it.
    Your script should either check if it is null or you should not destroy the object.
    PixelCrushers.DialogueSystem.PersistentActiveData.Check () (at Assets/Plugins/Pixel Crushers/Dialogue System/Scripts/Save Subsystem/PersistentActiveData.cs:66)
    PixelCrushers.DialogueSystem.PersistentActiveData.OnApplyPersistentData () (at Assets/Plugins/Pixel Crushers/Dialogue System/Scripts/Save Subsystem/PersistentActiveData.cs:61)
    UnityEngine.GameObject:SendMessage(String, SendMessageOptions)
    PixelCrushers.DialogueSystem.Tools:SendMessageToEveryone(String) (at Assets/Plugins/Pixel Crushers/Dialogue System/Scripts/Utility/Tools.cs:214)
    ...


    I would greatly appreciate any insight. Thank you for your time.

    Edit - Hmm, how odd. The RememberCurrentDialogueEntry script doesn't seem to work anymore. I can get the game to load after a bit of fiddling, but it won't start at the node where I saved it.
     
    Last edited: Nov 30, 2018
  35. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,670
    Hi @Candy-Bomber - Does your Dialogue Manager have a Dialogue System Saver component? If not, please try adding one.
     
  36. DMRhodes

    DMRhodes

    Joined:
    May 21, 2015
    Posts:
    81
    Hi, yes it has one.

    It also has the following scripts

    • Save System
    • Json Data Serializer
    • Player prefs Saved Game Data Storer
    Edit - I seem to have fixed most of my issues by basically burning the entire save system down and rebuilding it as per the instructions in the documentation. However the only thing I can't get working again is the Dialogue System Saver (Which I assume used to be the Remember Current Dialogue entry script?). Persistent data and everything else saves fine, it's just the players current position in a conversation that won't save.
     
    Last edited: Nov 30, 2018
  37. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,670
    I just got back into the office, and I'm just starting to look into this. The definitive script to do that is the Conversation State Saver component. Remember Current Dialogue Entry should work, too, as they're essentially the same thing. I'll check out both.

    The Dialogue System Saver component is different (but still required). It ties the Dialogue System's Persistent Data Manager into the Save System. In other words, it's the bridge between the existing Persistent Data components that were in version 1.x and the new, improved Save System that was introduced in version 2.x.
     
    Last edited: Nov 30, 2018
  38. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,670
    I haven't been able to reproduce the save/load issue. If you'd like to send reproduction steps or an example scene to tony (at) pixelcrushers.com, I'll be happy to take a look.

    Regarding the first issue (Conversation[21].Dialog[163] missing), version 2.0.5 gave the Dialogue Manager a new checkbox Persistent Data Settings > Initialize New Variables. It defaults to ticked. When ticked, after loading a saved game it initializes any new variables, quest entries, and conversations that were not present when the game was saved, since their data would not be in the saved game. If you were loading an old saved game, make sure this checkbox is ticked.

    Regarding the second issue (Persistent Active Data), for version 2.0.9 I added a null check and warning if the Persistent Active Data's Target field is unassigned/destroyed. It won't fix the issue, but it will at least give you more information more gracefully.
     
  39. EmeralLotus

    EmeralLotus

    Joined:
    Aug 10, 2012
    Posts:
    1,459
    I just imported the Dialogue system into unity 2018.2.15f1 and getting this error.

    Assets/Plugins/Pixel Crushers/Dialogue System/Scripts/Editor/Tools/Importers/CSV/CSVConverterWindow.cs(209,39): error CS0433: The imported type `System.IO.InvalidDataException' is defined multiple times

    Does anyone know what this is.

    Cheers
     
  40. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,670
    Hi @EmeralLotus - If you import the Dialogue System into a new, empty project, is the error still there?

    If not, find out what other asset has defined "InvalidDataException" and/or imported DLLs into your project. I think older versions of Bolt visual scripting had this issue -- not to say anything bad about Bolt; it's a fantastic visual scripting system. It may just need to be updated in your project. If not an asset, check that you haven't somehow imported two versions of .NET into your project or added the System DLLs to your project.
     
  41. magique

    magique

    Joined:
    May 2, 2014
    Posts:
    4,030
    @TonyLi I just started using this in my new project and something isn't working that I had no trouble with in my previous project. I've got a quest to collect items just like the save the babies quest, but the tracking doesn't show up in the HUD. I have the quest entry active, the variable is set correctly, and it's set to increment on destroy. Everything appears to be in order, but the tracker doesn't show up. The quest has trackable and track on start as well. I don't see any problems with the setup. Any ideas what could be wrong or is this something that got broken in the latest build?
     
  42. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,670
    Yes, I'm sorry, it's a bug in version 2.0.8, which released on Monday. Version 2.0.9 is pending release on the Asset Store. I'm hoping it will be available on the Asset Store by this upcoming Monday. In the meantime, you can import this patch: DialogueSystem_2_0_8_Patch20181127.unitypackage or PM me for access to the Pixel Crushers download page where you can download version 2.0.9.
     
  43. magique

    magique

    Joined:
    May 2, 2014
    Posts:
    4,030
    Perfect. The patch works. Thank you so much.
     
  44. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,670
    @magique - Glad to help. Sorry about the bug!

    ---

    Updated uMMORPG Support Package

    uMMORPG 1.148 (released yesterday) has a breaking API change. You can download the Dialogue System's updated integration package from the Extras page. Note that this package is compatible with 1.148+.

    ---

    Cyber Week Mega Sale Ends December 7

    The Asset Store's Cyber Mega Sale is still going on! You have until December 7 to get the Dialogue System at half price.
     
    magique likes this.
  45. DMRhodes

    DMRhodes

    Joined:
    May 21, 2015
    Posts:
    81
    Hello, thank you for your guidance thus far Tony. Hope I'm not nagging you too much. I've just about managed to solve basically all of my save-system related problems by opening the Dialogue System's "Test GameSaver" scene and basically just ripping the GameSaver Panel game-object out of that scene and placing it in my game-play scene. I still have one final error regarding an animator, but I'm not too sure on what the problem is. Selecting the error in the console brings me to the Dialogue Manager in the hierarchy, but I can't seem to pinpoint any specific animator problems from there on out. I would greatly appreciate any advice.


    MissingReferenceException: The object of type 'Animator' has been destroyed but you are still trying to access it.
    Your script should either check if it is null or you should not destroy the object.
    UnityEngine.Animator.GetCurrentAnimatorStateInfo (Int32 layerIndex) (at C:/buildslave/unity/build/Runtime/Animation/ScriptBindings/Animator.bindings.cs:625)
    PixelCrushers.DialogueSystem.UIShowHideController+<WaitForAnimationState>c__Iterator0.MoveNext () (at Assets/Plugins/Pixel Crushers/Dialogue System/Scripts/UI Subsystem/UI Utility/UIShowHideController.cs:99)
    UnityEngine.SetupCoroutine.InvokeMoveNext (IEnumerator enumerator, IntPtr returnValueAddress) (at C:/buildslave/unity/build/Runtime/Export/Coroutines.cs:17)


    Thank you for your time.
     
  46. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,670
    Hi @Candy-Bomber - This is a relatively harmless message, but it's fixed in version 2.0.9. It happens when a Unity UI Dialogue UI is destroyed while one of its animators is running an animation. I PM'ed you your access info to download 2.0.9. I'm hoping that this version becomes available on the Asset Store tomorrow or soon after.
     
  47. DMRhodes

    DMRhodes

    Joined:
    May 21, 2015
    Posts:
    81
    Ah fantastic, thank you very much Tony. You're a light in the darkness.
     
    TonyLi likes this.
  48. superwendel

    superwendel

    Joined:
    Jun 18, 2013
    Posts:
    105
    Hey Tony, while setting up some events with the Dialogue System Trigger in the editor I started getting this NullReference:

    NullReferenceException: Object reference not set to an instance of an object
    PixelCrushers.DialogueSystem.DialogueSystemTriggerEditor.DrawConditions () (at Assets/Plugins/Pixel Crushers/Dialogue System/Scripts/Editor/Inspectors/Trigger Editors/DialogueSystemTriggerEditor.cs:169)
    PixelCrushers.DialogueSystem.DialogueSystemTriggerEditor.OnInspectorGUI () (at Assets/Plugins/Pixel Crushers/Dialogue System/Scripts/Editor/Inspectors/Trigger Editors/DialogueSystemTriggerEditor.cs:119)
    UnityEditor.InspectorWindow.DrawEditor (UnityEditor.Editor editor, Int32 editorIndex, Boolean rebuildOptimizedGUIBlock, System.Boolean& showImportedObjectBarNext, UnityEngine.Rect& importedObjectBarRect) (at C:/buildslave/unity/build/Editor/Mono/Inspector/InspectorWindow.cs:1240)
    UnityEditor.DockArea:OnGUI()

    As a result, all of my Dialogue System Triggers in my scenes now only looks like this:

    I was on, I believe 2.0.7 and pushed it after this happened to 2.0.8 on Unity 5.6.5 to see if that might of resolved it. Any ideas? Thanks in advance!
     
  49. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,670
    Hi @StevenWendel - Something must have happened in your project to the EditorPrefs entry that the inspector uses to remember which foldouts are expanded. Here's a patch that verifies the validity of that EditorPrefs entry. If it's invalid, it will reset the entry to defaults rather than throwing an error.

    BTW, there's a bug in 2.0.8. Version 2.0.9 is still pending on the Asset Store but will hopefully be available there on Monday. I PM'ed you your access info for the customer download site if you want to get 2.0.9 immediately.

    If anyone else needs access to the customer download site, please PM me your Asset Store invoice number.
     

    Attached Files:

  50. EmeralLotus

    EmeralLotus

    Joined:
    Aug 10, 2012
    Posts:
    1,459
    Just wondering about integration with Adventure Creator.
    Is this a something that has to be downloaded separately or already included in Dialogue system