Search Unity

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

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

  1. dinaloraven234

    dinaloraven234

    Joined:
    Dec 20, 2018
    Posts:
    141
    Here are the screenshots
     

    Attached Files:

    • 1.png
      1.png
      File size:
      362.3 KB
      Views:
      685
    • 2.png
      2.png
      File size:
      206 KB
      Views:
      702
  2. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,694
    Is there anything in the Accepted GameObjects foldout?
     
  3. dinaloraven234

    dinaloraven234

    Joined:
    Dec 20, 2018
    Posts:
    141
    None. I haven't added some conditions on the accepted gameobject. But my test object in the other works fine. I just only set the condition to skeleton extermination success and after I finished the quest in the main town scene and go to the tavern scene the cube(its the child of the test object with the persistent active data) is enabled.
     
  4. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,694
    Is the following correct?
    • You have 3 scenes: MainTown, tavern, and dungeon.
    • The quest is set to success in the dungeon.
    • In MainTown, TavernLevelLoader has a Persistent Active Data that should activate its child Tavern when the quest is success. This doesn't work. The component says (Last Check: False)
    • In the tavern scene, there is a similar GameObject with a Persistent Active Data that should activate its child when the quest is success. This does work. The component says (Last Check: True)
    • The conditions are defined exactly the same on both Persistent Active Data components.
     
  5. dinaloraven234

    dinaloraven234

    Joined:
    Dec 20, 2018
    Posts:
    141
    All
    The above you mention are all correct except for the quest. The quest is set to success in the main town scene when the player talks to the quest giver and verify that he killed all the skeleton in the dungeon scene
     
  6. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,694
    After completing the quest with the quest giver, if you re-enter the dungeon and then return to MainTown, is Tavern activated?

    If so, then I think you just need to also activate Tavern when the player turns in the quest. To do that, use SetActive(Tavern) in the dialogue entry's Sequence field.
     
  7. dinaloraven234

    dinaloraven234

    Joined:
    Dec 20, 2018
    Posts:
    141
    Hi @TonyLi it's working now but when I go to the tavern and goes back to the town scene it gets disabled again. I just want it disabled at start if the first quest isn't finished but remains enabled after finishing the quest. How can I make it to stay enabled after I finished the quest?
     
  8. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,694
    When you go from tavern to MainTown, what does TavernLevelLoader's Persistent Active Data say? Last Check: False or True?

    (I'm finishing work for the day, but I'll check back first thing in the morning.)
     
  9. dinaloraven234

    dinaloraven234

    Joined:
    Dec 20, 2018
    Posts:
    141
    I haven't checked it. I'll check it now.

    Edit: its working now. I forgot that I removed the persistent active data component. Thanks anyways
     
  10. DMRhodes

    DMRhodes

    Joined:
    May 21, 2015
    Posts:
    81
    Hey, got a little more today. Firstly I'm having the oddest issue with alerts. In short an alert will work in one dialogue node but not in another node in a different conversation and I'm not sure of the logic behind it all.

    In a player nodes script field, I write the following
    Code (CSharp):
    1. ShowAlert("Did Stuff")
    during gameplay, this results in this following console error and no alert displayed.
    Code (CSharp):
    1. Dialogue System: Lua code 'ShowAlert("Did Stuff")' threw exception 'Tried to invoke a function call on a non-function value. If you're calling a function, is it registered with Lua?'
    2. UnityEngine.Debug:LogError(Object)
    3. PixelCrushers.DialogueSystem.Lua:RunRaw(String, Boolean, Boolean) (at Assets/Plugins/Pixel Crushers/Dialogue System/Scripts/Lua/Lua Wrapper/Lua Interpreter Wrapper/Lua.cs:219)
    4. PixelCrushers.DialogueSystem.Lua:Run(String, Boolean, Boolean) (at Assets/Plugins/Pixel Crushers/Dialogue System/Scripts/Lua/Lua Wrapper/Lua Interpreter Wrapper/Lua.cs:120)
    5. PixelCrushers.DialogueSystem.ConversationModel:GetState(DialogueEntry, Boolean, Boolean, Boolean) (at Assets/Plugins/Pixel Crushers/Dialogue System/Scripts/MVC/Model/Logic/Model/ConversationModel.cs:233)
    6. PixelCrushers.DialogueSystem.ConversationModel:GetState(DialogueEntry) (at Assets/Plugins/Pixel Crushers/Dialogue System/Scripts/MVC/Model/Logic/Model/ConversationModel.cs:297)
    7. PixelCrushers.DialogueSystem.ConversationController:OnSelectedResponse(Object, SelectedResponseEventArgs) (at Assets/Plugins/Pixel Crushers/Dialogue System/Scripts/MVC/Controller/ConversationController.cs:257)
    8. PixelCrushers.DialogueSystem.ConversationView:SelectResponse(SelectedResponseEventArgs) (at Assets/Plugins/Pixel Crushers/Dialogue System/Scripts/MVC/View/View/ConversationView.cs:454)
    9. PixelCrushers.DialogueSystem.ConversationView:OnSelectedResponse(Object, SelectedResponseEventArgs) (at Assets/Plugins/Pixel Crushers/Dialogue System/Scripts/MVC/View/View/ConversationView.cs:447)
    10. PixelCrushers.DialogueSystem.AbstractDialogueUI:OnClick(Object) (at Assets/Plugins/Pixel Crushers/Dialogue System/Scripts/UI Subsystem/Abstract/Abstract Dialogue UI/AbstractDialogueUI.cs:346)
    11. PixelCrushers.DialogueSystem.StandardDialogueUI:OnClick(Object) (at Assets/Plugins/Pixel Crushers/Dialogue System/Scripts/UI Subsystem/Standard/Dialogue/StandardDialogueUI.cs:215)
    12. UnityEngine.Component:SendMessage(String, Object, SendMessageOptions)
    13. PixelCrushers.DialogueSystem.StandardUIResponseButton:OnClick() (at Assets/Plugins/Pixel Crushers/Dialogue System/Scripts/UI Subsystem/Standard/Dialogue/StandardUIResponseButton.cs:124)
    14. UnityEngine.EventSystems.EventSystem:Update()
    However if I copy-paste the script code to another node in a different conversation it displays the alert without issue. I'm sort of at a loss here and would appreciate any input please.

    Edit - I think I figured out the cause. This only seems to occur when I load the game using the dialogue system's save system and then use the node in question. If I start a brand new game and progress to the node naturally, then it seems to work perfectly. Strange.



    Problem 2 - I use random elements + variables during dialogue to simulate smalltalk. Little tidbits like "how's the weather?" but also small actions like nodding etc. Given the nature of my project I have to rely on this system as barks aren't viable. Here's an example.

    Code (CSharp):
    1. [lua(RandomElement(Variable["Smalltalk"]))]
    Code (CSharp):
    1. Variable["Smalltalk"] = ""How's the weather?"|Bob fidgets uncomfortably|"Hey, what's up?"|"How's it going?"|Bob looks around nervously!";
    However this results in a myriad of issues and doesn't work, I assume likely because of the quotation marks inside of the variable itself. As once I remove all of the internal quotations everything is golden. However this makes the dialogue rather awkward as the statements made by 'Bob' should ideally be in quotations while the smalltalk-actions (such as "Bob looks around nervously") shouldn't be. Is there any way to get around this?

    Thank you for your time, regards
     
    Last edited: Mar 30, 2019
  11. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,694
    Hi,
    Does your Dialogue Manager have the default values of Other Settings > Allow Only One Instance ticked and Dont Destroy On Load ticked?

    If you temporarily set the Debug Level to Info, does this line ever get logged?

    Dialogue System: Unregistering Lua function ShowAlert​


    Try this:
    Code (lua):
    1. Variable["Smalltalk"] = "\"How's the weather?\"|Bob fidgets uncomfortably|\"Hey, what's up?\"|\"How's it going?\"|Bob looks around nervously!";
    In other words, put a backspace in front of any quotes that need to remain as literal quote characters inside the string.
     
    DMRhodes likes this.
  12. DMRhodes

    DMRhodes

    Joined:
    May 21, 2015
    Posts:
    81
    Yes, both are ticked. Yes, the line is indeed logged - here as follows
    Code (CSharp):
    1. Dialogue System: Unregistering Lua function ShowAlert
    2. UnityEngine.Debug:Log(Object)
    3. PixelCrushers.DialogueSystem.Lua:UnregisterFunction(String) (at Assets/Plugins/Pixel Crushers/Dialogue System/Scripts/Lua/Lua Wrapper/Lua Interpreter Wrapper/Lua.cs:288)
    4. PixelCrushers.DialogueSystem.DialogueSystemController:UnregisterLuaFunctions() (at Assets/Plugins/Pixel Crushers/Dialogue System/Scripts/Manager/DialogueSystemController.cs:1615)
    5. PixelCrushers.DialogueSystem.DialogueSystemController:OnDestroy() (at Assets/Plugins/Pixel Crushers/Dialogue System/Scripts/Manager/DialogueSystemController.cs:278)

    Thank you for your help, I will give it a go. :)

    Edit - Everything seems to be in working order now. Thank you once more for going above and beyond.
     
    Last edited: Mar 30, 2019
  13. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,694
    Even ShowAlert? If so, what was the issue?
     
  14. DMRhodes

    DMRhodes

    Joined:
    May 21, 2015
    Posts:
    81
    Ah, It seems I was too early with that statement after a couple minutes of more testing. My bad.

    Alerts seem to work fine during a fresh 'new' game. However once you save the game and reload it (using the dialogue system save system) none of the script field ShowAlert() seem to work anywhere; presenting the same error as before. Evening after leaving the loaded conversation and moving into another one.

    Code (CSharp):
    1. ShowAlert("Did Stuff")' threw exception 'Tried to invoke a function call on a non-function value. If you're calling a function, is it registered with Lua?'
    2. UnityEngine.Debug:LogError(Object)
    3. PixelCrushers.DialogueSystem.Lua:RunRaw(String, Boolean, Boolean) (at Assets/Plugins/Pixel Crushers/Dialogue System/Scripts/Lua/Lua Wrapper/Lua Interpreter Wrapper/Lua.cs:219)
    4. PixelCrushers.DialogueSystem.Lua:Run(String, Boolean, Boolean) (at Assets/Plugins/Pixel Crushers/Dialogue System/Scripts/Lua/Lua Wrapper/Lua Interpreter Wrapper/Lua.cs:120)
    5. PixelCrushers.DialogueSystem.ConversationModel:GetState(DialogueEntry, Boolean, Boolean, Boolean) (at Assets/Plugins/Pixel Crushers/Dialogue System/Scripts/MVC/Model/Logic/Model/ConversationModel.cs:233)
    6. PixelCrushers.DialogueSystem.ConversationModel:GetState(DialogueEntry) (at Assets/Plugins/Pixel Crushers/Dialogue System/Scripts/MVC/Model/Logic/Model/ConversationModel.cs:297)
    7. PixelCrushers.DialogueSystem.ConversationController:OnSelectedResponse(Object, SelectedResponseEventArgs) (at Assets/Plugins/Pixel Crushers/Dialogue System/Scripts/MVC/Controller/ConversationController.cs:257)
    8. PixelCrushers.DialogueSystem.ConversationView:SelectResponse(SelectedResponseEventArgs) (at Assets/Plugins/Pixel Crushers/Dialogue System/Scripts/MVC/View/View/ConversationView.cs:454)
    9. PixelCrushers.DialogueSystem.ConversationView:OnSelectedResponse(Object, SelectedResponseEventArgs) (at Assets/Plugins/Pixel Crushers/Dialogue System/Scripts/MVC/View/View/ConversationView.cs:447)
    10. PixelCrushers.DialogueSystem.AbstractDialogueUI:OnClick(Object) (at Assets/Plugins/Pixel Crushers/Dialogue System/Scripts/UI Subsystem/Abstract/Abstract Dialogue UI/AbstractDialogueUI.cs:346)
    11. PixelCrushers.DialogueSystem.StandardDialogueUI:OnClick(Object) (at Assets/Plugins/Pixel Crushers/Dialogue System/Scripts/UI Subsystem/Standard/Dialogue/StandardDialogueUI.cs:215)
    12. UnityEngine.Component:SendMessage(String, Object, SendMessageOptions)
    13. PixelCrushers.DialogueSystem.StandardUIResponseButton:OnClick() (at Assets/Plugins/Pixel Crushers/Dialogue System/Scripts/UI Subsystem/Standard/Dialogue/StandardUIResponseButton.cs:124)
    14. UnityEngine.EventSystems.EventSystem:Update()
    So, something is wonky with the save system and the 'Alert' dialogue system variable I guess? I'm not very versed in coding I'm afraid.
     
  15. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,694
    @Candy-Bomber - Confirmed. You don't need to do any more troubleshooting. I'll post a patch soon.
     
    Weblox, hopeful and DMRhodes like this.
  16. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,694
    Weblox, hopeful and DMRhodes like this.
  17. dinaloraven234

    dinaloraven234

    Joined:
    Dec 20, 2018
    Posts:
    141
  18. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,694
    Only with a small set of Lua functions, including ShowAlert(). You can import the patch above if you want. The fix will also be in version 2.1.4.
     
  19. Bogu-94

    Bogu-94

    Joined:
    Dec 11, 2013
    Posts:
    58
    Hi, I'm using a very old version of Dialogue System (about 1 year++).
    Just recently I tried to use localization in my project, that is never planned from the start.

    So I have these cloned Databases
    - Dialogue Database (English) -> this one's the original
    - Dialogue Database (Spanish)
    - Dialogue Database (PT-BR)
    - and so on, around 5 more clones.

    When I tried to change the Dialogue Manager's initial Database with one of these clones through the inspector, it works great. But when I change it with code, the initialDatabase in the inspector is changed, but the contents are not.
    Tried to open some random conversations, and it still showing the English Language.

    I'm only using this simple code
    DialogueManager.Instance.initialDatabase = selectedDatabase;

    probably looking for a function to re initialize the new database, but I can only find ResetDatabase and PreloadMasterDatabase which didn't change anything.

    I hope this feature is already available in old version. My project is not in a good shape to update critical plugins.
     
  20. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,694
    Hi @johanesnw - Thanks for being a long-time Dialogue System user! What version are you using? The version number is in the Dialogue System's _README.txt folder and also in the welcome window.

    The ideal solution is to combine your databases into one. Then you would simply set the language using DialogueManager.SetLanguage() and the Dialogue System would grab the correct translation.

    Here is one way to combine your databases:
    1. Export them to CSV files. The file will look like the screenshot below. Although you should export everything, the screenshot below only shows a few dialogue entries to make this description clearer.
      upload_2019-4-1_8-42-27.png

    2. Combine them into one CSV file. For each additional language, add a new column such as "ES", "PT-BR", etc., whose type is Localization:
      upload_2019-4-1_8-47-33.png

    3. Import the big CSV file back into the Dialogue System.
    Make a backup before doing this, just to be safe.

    If you don't want to combine them, then use DialogueManager.RemoveDatabase() and DialogueManager.AddDatabase(). Example:

    Code (csharp):
    1. // Switch to Spanish database:
    2. DialogueManager.RemoveDatabase(DialogueManager.instance.initialDatabase);
    3. DialogueManager.AddDatabase(spanishDatabase);
     
  21. Bogu-94

    Bogu-94

    Joined:
    Dec 11, 2013
    Posts:
    58
    Thanks for the quick answer @TonyLi !! Works like a charm!
    I'll just save that database combine for future reference :p

    Just checked it and I'm using v 1.7.1
     
  22. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,694
    Glad to help!

    If you have no issues with 1.7.1, no need to update. There were some bug fixes between 1.7.1 and 1.8.8 that you can review here: 1.x Release Notes. If you need to update to 1.8.8 to get a bug fix, you can download it from the Pixel Crushers customer download site. PM me if you need access.
     
  23. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,694
    Dialogue System for Unity 2.1.4 Released

    Version 2.1.4 is now available on the Asset Store!

    This update contains a couple of important bug fixes. If you're using version 2.x, I recommend updating.

    Release Notes
    Core:
    • Fixed: Certain built-in Lua functions became unavailable after loading saved game.
    • Fixed: DemoMenu clear saved game button works again with SaveSystem.
    • Fixed: Dialogue Editor no longer allows conversation titles to start with "/".
    • Improved: When Dialogue Editor creates new conversation, now assigns actors from previous conversation.
    • Improved: Added "Subtract" option to Lua wizard.
    • Improved: Selector/ProximitySelector now localizes use message and usable's override name.
    • Text Tables:
      - Fixed: Adding new field showed blank line until refresh.
      - Added: Sort & search features.
    • Save System:
      - Added Restore State On Start checkbox to savers.
      - Added DeleteSavedGameInSlot method to SaveSystemMethods.
    Third Party Support:
    • Invector: Fixed bugs in vGetItemCount, vRemoveItemByID, and InvectorInventorySaver.
    • uMMORPG: Updated for 1.165.
     
    dinaloraven234 and DMRhodes like this.
  24. Ekzalphantoss

    Ekzalphantoss

    Joined:
    Sep 27, 2016
    Posts:
    11
    Hi,
    I have 2 questions.
    1) I can't find an option anywhere to hide the previous line when player choices appear. I tried searching this form but I didn't find anyone else asking this. Is there a way to do it or do I have to make a custom command to hide the previous dialogue when choices appear?

    I mean for example if I have the following:

    NPC: Do you like me?
    Player:
    1. Yes
    2. Maybe
    3. No

    I'd like to for the NPC line "Do you like me?" to disappear when the player choices appear.

    2) In order to know when a conversation ended, I added a custom sequencer event for choices and for final lines in my dialog. I then subscribe to my custom event and call the next conversation on the same frame. This doesn't work for some reason (and I didn't find and option for new conversations to force end old ones) so I resorted to calling stop conversation before starting the next one. This results in everything fading out between conversations.
    I saw a bunch of places where you or other people said you have plenty of hooks in the conversations but I can't seem to find them. Is there some easy way to know which choice was clicked or when a conversation has ended (for my specific situation I have a bunch of conversations in a row with only 2 actors; some conversations end with normal text, others end right after the choice)?
     
  25. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,694
    Hi @Ekzalphantoss - Inspect the dialogue UI's Standard UI Subtitle Panel component. Change the Visibility dropdown to Only During Content.

    To hook up events in the inspector, add a Dialogue System Events component. In a script, use these special script methods: OnConversationEnd and OnConversationLine.
     
  26. Ekzalphantoss

    Ekzalphantoss

    Joined:
    Sep 27, 2016
    Posts:
    11
    Thank you
     
  27. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,694
    Glad to help!
     
  28. HP

    HP

    Joined:
    Nov 20, 2012
    Posts:
    80
    @TonyLi I updated to Unity3D 2018.3.11f1 and Unity3D editor crashed on importing Dialogue System for Unity 2.1.4 without any error message in the Unity logs.
    After this it crashes each time I start Unity3D editor.
    Unity3D stops crashing if I remove Dialogue System for Unity, but after reimport Dialogue System for Unity 2.1.4 it crashes again.
    Is there anything I'm missing to do like remove some secret folders or something like that?
    I've only removed "Assets/Plugins/Pixel Crushers/".

    My loaded Unity packages...

    Code (JavaScript):
    1. {
    2.   "dependencies": {
    3.     "com.unity.burst": "1.0.0-preview.9",
    4.     "com.unity.cinemachine": "2.2.8",
    5.     "com.unity.collab-proxy": "1.2.16",
    6.     "com.unity.collections": "0.0.9-preview.12",
    7.     "com.unity.entities": "0.0.12-preview.24",
    8.     "com.unity.jobs": "0.0.7-preview.6",
    9.     "com.unity.mathematics": "1.0.0-preview.1",
    10.     "com.unity.package-manager-ui": "2.0.7",
    11.     "com.unity.postprocessing": "2.1.5",
    12.     "com.unity.probuilder": "4.0.4",
    13.     "com.unity.properties": "0.4.0-preview",
    14.     "com.unity.textmeshpro": "1.3.0",
    15.     "com.unity.xr.openvr.standalone": "1.0.3",
    16.     "com.unity.modules.ai": "1.0.0",
    17.     "com.unity.modules.animation": "1.0.0",
    18.     "com.unity.modules.assetbundle": "1.0.0",
    19.     "com.unity.modules.audio": "1.0.0",
    20.     "com.unity.modules.cloth": "1.0.0",
    21.     "com.unity.modules.director": "1.0.0",
    22.     "com.unity.modules.imageconversion": "1.0.0",
    23.     "com.unity.modules.imgui": "1.0.0",
    24.     "com.unity.modules.jsonserialize": "1.0.0",
    25.     "com.unity.modules.particlesystem": "1.0.0",
    26.     "com.unity.modules.physics": "1.0.0",
    27.     "com.unity.modules.physics2d": "1.0.0",
    28.     "com.unity.modules.screencapture": "1.0.0",
    29.     "com.unity.modules.terrain": "1.0.0",
    30.     "com.unity.modules.terrainphysics": "1.0.0",
    31.     "com.unity.modules.tilemap": "1.0.0",
    32.     "com.unity.modules.ui": "1.0.0",
    33.     "com.unity.modules.uielements": "1.0.0",
    34.     "com.unity.modules.umbra": "1.0.0",
    35.     "com.unity.modules.unityanalytics": "1.0.0",
    36.     "com.unity.modules.unitywebrequest": "1.0.0",
    37.     "com.unity.modules.unitywebrequestassetbundle": "1.0.0",
    38.     "com.unity.modules.unitywebrequestaudio": "1.0.0",
    39.     "com.unity.modules.unitywebrequesttexture": "1.0.0",
    40.     "com.unity.modules.unitywebrequestwww": "1.0.0",
    41.     "com.unity.modules.vehicles": "1.0.0",
    42.     "com.unity.modules.video": "1.0.0",
    43.     "com.unity.modules.vr": "1.0.0",
    44.     "com.unity.modules.wind": "1.0.0",
    45.     "com.unity.modules.xr": "1.0.0"
    46.   },
    47.   "registry": "https://packages.unity.com",
    48.   "testables": [
    49.     "com.unity.collections",
    50.     "com.unity.entities",
    51.     "com.unity.jobs",
    52.     "com.unity.test-framework.performance"
    53.   ]
    54. }
    55.  
     
    Last edited: Apr 4, 2019
  29. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,694
    Hi @HP - Sorry to hear about the crashing. You shouldn't need to remove anything when updating.

    Would you please re-open Unity so it crashes and then PM me the Editor.log file or email it to tony (at) pixelcrushers.com?

    If you import the Dialogue System for Unity 2.1.4 into a new, empty project, does it work correctly?
     
  30. HP

    HP

    Joined:
    Nov 20, 2012
    Posts:
    80
    I have imported Dialogue Sytsem for Unity in a new project without and with the unity packages like in my other project.
    It doesn't crashed on both tests. It only crashes in my project.
    I have sent the Editor.log with a PM.

    [EDIT]
    It only crashes if a scene is loaded in my project. With new empty scenes it doesn't crash.
    Looks like it crashes only if Vegetation Studio Pro loads the vegetation.
    It could have been a coincidence that it crashed during import of Dialogue System for Unity.
    I will do some more tests on this.
     
    Last edited: Apr 4, 2019
  31. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,694
    @HP - Thanks for sending the log. Please try updating Vegetation Studio.
     
  32. dinaloraven234

    dinaloraven234

    Joined:
    Dec 20, 2018
    Posts:
    141
    Hi @TonyLi I've downloaded you menu framework and I can't get to open the pause menu. I tried replacing the Cancel in the button tab with p but still doest show the pause menu
     
  33. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,694
    Hi @dinaloraven234 - The Pause script's Pause Button refers to a Unity Input Manager button definition. By default, "Cancel" is mapped to escape, but Invector remaps it to backspace.

    Pause script:

    upload_2019-4-6_8-47-42.png

    Unity Input Manager: (Edit > Project Settings > Input)

    upload_2019-4-6_8-49-9.png

    You could add another input named "Pause", map it to escape, and then set the Pause script's Pause Button to "Pause".
     

    Attached Files:

  34. dinaloraven234

    dinaloraven234

    Joined:
    Dec 20, 2018
    Posts:
    141
    Hi @TonyLi tried adding a new input called "Pause" and set the alt positive to escape but still the pause menu doesn't show
     
  35. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,694
    Did you set the Pause script's Pause Button name to Pause?
     
  36. dinaloraven234

    dinaloraven234

    Joined:
    Dec 20, 2018
    Posts:
    141
    Yup I set it to pause
     
  37. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,694
    "pause" or "Pause"? Make sure it exactly matches the input definition in Unity's Input Manager.

    Is the Pause input definition's Type dropdown set to Key or Mouse Button?

    upload_2019-4-6_19-8-26.png
     
  38. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,694
    Updated PlayMaker Support Available

    The Dialogue System Extras page has an updated PlayMaker Support package. A few actions needed to be updated for .NET4 compatibility. The package also includes more sync actions to sync additional data types between PlayMaker and the Dialogue System.
     
  39. dinaloraven234

    dinaloraven234

    Joined:
    Dec 20, 2018
    Posts:
    141
    Yes it is key or mouse button type
     
  40. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,694
    That's exactly how I have it set up, too, in a test project. Make sure your input definition or Pause Button field doesn't have a blank space hiding at the beginning or end, and that the capitalization matches.

    If that doesn't help, feel free to send a reproduction project to tony (at) pixelcrushers.com. You can zip up just the Assets and ProjectSettings folders. It will make the file smaller to send.
     
  41. dinaloraven234

    dinaloraven234

    Joined:
    Dec 20, 2018
    Posts:
    141
    Thank you I'll double check it again
     
  42. dinaloraven234

    dinaloraven234

    Joined:
    Dec 20, 2018
    Posts:
    141
    Hi @TonyLi how can I enable the mouse cursor when I pause and hides or disable the mouse cursor when resumed?
     
  43. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,694
    Hi @dinaloraven234 - Configure the PausePanel's OnOpen() event to show the cursor by calling InputDeviceManager.SetCursor, and configure OnClose() to hide the cursor:

    upload_2019-4-8_9-45-58.png
     
    Weblox likes this.
  44. dinaloraven234

    dinaloraven234

    Joined:
    Dec 20, 2018
    Posts:
    141
    Hi @TonyLi regarding the cursor I have a problem. When I play the scene the cursor immediately appears on screen but before it doesn't happen. How can I fix that?

    And also I have a problem in the dialogue system menu framework. When I build the game it always crashes the unity editor but when I remove it and build the game it works fine
     
    Last edited: Apr 10, 2019
  45. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,694
    Hi @dinaloraven234 - Which scene? The Start scene (without Invector) or a scene with an Invector player GameObject?

    The Dialogue Manager GameObject has an Input Device Manager component.
    • If you've set its Input Device dropdown to Mouse, it will show the mouse.
    • If it's set to a different value such as Joystick, it will automatically switch to Mouse if you move the mouse, unless you untick Detect Mouse Control.
    • If you untick Control Cursor State, it will not change the cursor's visibility.

    Check the Editor.log file. Many games use the Menu Framework. There's probably something specific in your project.
     
  46. dinaloraven234

    dinaloraven234

    Joined:
    Dec 20, 2018
    Posts:
    141
    Hi @TonyLi its the scene with the invector player
     
  47. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,694
    What are these settings on your Input Device Manager?
    • Input Device
    • Detect Mouse Control
    • Control Cursor State
    And also the value of:
    • vThirdPersonInput > Show Cursor On Start
    Do you still have EviLA's RPG Pack in your project? If so, does your scene have a vMainMenu component? (This component forces the cursor active.)

    Do you have any other assets that would control the cursor?
     
  48. Deckard_89

    Deckard_89

    Joined:
    Feb 4, 2016
    Posts:
    316
    Hi Tony, I'm having an issue in which the cursor keeps showing when a conversation starts, even though "Show Cursor During Conversation" is not enabled. The cursor disappears again once the conversation ends (as intended).

    I have removed the Input Device Manager component as I have no need for any input with DS - all conversations will be automated.

    This is being used with Opsive's TPC 2.
     
  49. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,694
    Hi @Deckard_89 - Try this: Inspect Pixel Crushers / Dialogue System / Third Party Support / Opsive UCC Support / Data / ConversingUnityInputPreset. Click the 'X' next to Disable Cursor to remove the line.

    Explanation: The Dialogue System's setup instructions had you add a Converse ability and a ConversingUnityInputPreset to your character. When an Opsive character starts a conversation, it automatically starts the Converse ability. While the Converse ability is active, it activates the ConversingUnityInputPreset state. This state shows the cursor (unless you've remove the line as I mentioned above).
     
    Deckard_89 likes this.
  50. jrackley

    jrackley

    Joined:
    Jan 26, 2017
    Posts:
    55
    @TonyLi I was wandering if you had the time to give a quick example script of how to go back to a previous entry after selecting a player response. For example say the NPC asks a question and you have 2 options... 1. what place? 2. Tell me more? If I select option 1. after the Npc speaks again I would like the dialogue choices to go back to the 2 options again.... 1. what place? 2. Tell me more? so that I can choose the other option this time. I saw where this is mentioned in the FAQ portion of the docs, but hoping you could give a quick example of how to accomplish this.
    Thanks in advance.