Search Unity

  1. Good news ✨ We have more Unite Now videos available for you to watch on-demand! Come check them out and ask our experts any questions!
    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. johanesnw

    johanesnw

    Joined:
    Dec 11, 2013
    Posts:
    55
    Is it possible to disable the auto backup? We're working on a text heavy RPG, that needs separate dialogue database for each chapter. Tried using a single database on previous project and it didn't end up good. (Conversation and Actor management were too messy.)
    Every time it does the auto backup, I had to wait like 20-30sec and it would be good if I don't have to deal with that. It backups too frequently, and I've never met the need of backup database for the past 4 years. :D


    And, does it still not support (or will it ever support) 'undo' on conversation node editing? currently using v2.2.2 on 2018LTE.
    The ctrl+z works on things like node create/delete, changing links, etc. But once I delete that 20 lines of sequence script, I haven't found any way to retrieve them back (while the auto backup hasnt run).
    It easily happens because clicking on the sequence/dialogue input box put it on "select all text". and accidentally pressing any key could ruin my day.

    well, most nodes would only have 1 to 5 sequence lines. and the chance to delete that 1 important node is very tiny. It happens like once or twice every month. So I won't say that's a very big deal.
    But still, I wish I don't have to go through it ever again. :D
     
  2. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    10,729
    Hi @johanesnw - To disable auto backup, set Database > Editor Settings> Auto Backup Frequency to zero:

    upload_2020-7-25_15-30-58.png

    I'll check 'undo' for version 2.2.9 to make sure it supports undo in that situation. It was disabled because of a bug in Unity 2019.2 - 2019.3 that would cause performance issues. Unity fixed their bug in 2019.4 and 2020.1
     
  3. Stickeyd

    Stickeyd

    Joined:
    Mar 26, 2017
    Posts:
    102
    So it seems that the subtitle game objects are disabled and there is no text there when this issue occurs(for some reason)


    I've been trying to figure out exact action I need to do to reproduce this problem... But I coulnd't. It just occurs after a random number of times starting the dialogue.
     
    Last edited: Jul 27, 2020
  4. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    10,729
    @Stickeyd - Does this only happen if you stop and restart the conversation in rapid succession? If so, that suggests a timing issue between when the Close operation finishes and the next Open operation runs.

    Or can it also happen if you wait a few seconds between stopping and restarting the conversation?

    Are there any errors or warnings in the Console window?
     
  5. Stickeyd

    Stickeyd

    Joined:
    Mar 26, 2017
    Posts:
    102
    Yeah, seems that it happens only if I stop and restart the conversation in rapid succesion
     
  6. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    10,729
    What version of the Dialogue System are you using? Would it be possible for you to update to 2.2.8? I can't seem to set up any scenarios that reproduce the issue in 2.2.8. If you'd like to send a reproduction project to tony (at) pixelcrushers.com, I'll be happy to take a look. Alternatively, as a safeguard if you can't update to 2.2.8, you could check that the dialogue UI is fully closed before allowing another conversation to start. (Check if the StandardDialogueUI's conversationUIElements.mainPanel.panelState == PanelState.Closed.)
     
    Last edited: Jul 27, 2020
  7. Stickeyd

    Stickeyd

    Joined:
    Mar 26, 2017
    Posts:
    102
    I'm already at 2.2.8. Checking if the dialogue UI is closed before starting it again helped though so I'm done with this issue, thanks.
     
    Last edited: Jul 28, 2020
  8. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    10,729
    Sounds good! I'll investigate this further on my end, too, to make sure it always resets properly if the UI tries to open again while it's in the process of closing. (No need to respond, since your issue is working now.)
     
  9. formatc2013

    formatc2013

    Joined:
    Jul 4, 2016
    Posts:
    25
    Hello everyone!

    @TonyLi thanks for putting this awesome asset together! Just bougth it off the asset store, and I love it.
    I had a little play with the dialog system today, and sadly I got stuck... :(
    I tried to hook up a Runic Standard Dialogue UI to work with XBOX controllers.
    I just would like to navigate between dialog buttons with the controller analog.
    Set it up and works fine, I can navigate with the arrows on the keyboard and on the controller with no probs, but the first time a dialog comes up, and if the player starts the dialog , the dialog buttons are not focused, and can't be navigated...
    I have to select the first ones with cursor, but than it works fine.
    The second, third etc time it comes up it is ok.
    I am sure I am just missing out something really simple.

    Thanks
     
  10. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    10,729
    Hi @formatc2013 - Thanks for buying the Dialogue System!

    Inspect the Dialogue Manager prefab, and tick the Input Device Manager component's Always Auto Focus checkbox. When the response menu is visible, this checkbox will make sure that a response button stays focused (selected) so you can navigate between them.

    Here are more details if you're interested:
    • The Input Device Manager detects what kind of input device you're using: joystick, mouse, keyboard, or touch. If you move or click the mouse, the Input Device Manager switches to mouse mode. If you press a joystick button or axis, it switches to joystick mode. If you're using mouse, it shows the mouse cursor and does not auto focus. If you're using joystick or keyboard, it hides the mouse cursor and auto focuses.
    • If Always Auto Focus is unticked, then it always auto focuses even in mouse mode.
    • The Input Device Manager has additional options, too. It also has its own PDF manual in Plugins / Pixel Crushers / Common / Documentation. You can mouse over most options to get tooltip info about what it does.
     
  11. DREBOTgamestudio

    DREBOTgamestudio

    Joined:
    Jan 30, 2018
    Posts:
    37
    Hello, I'm having some difficulty saving and loading Quest/Items.
    1. When I go to a new scene DialogueLua changes to default values. Therefore, the items that have been changed must be saved. What is the best way to do this? I tried to create a saver, but it didn't work.

    Code (CSharp):
    1.         public override void ApplyData(string s)
    2.         {
    3.             if (!string.IsNullOrEmpty(s))
    4.             {
    5.                 var currentScene = SceneManager.GetActiveScene().buildIndex;
    6.  
    7.                 var data = SaveSystem.Deserialize<CustomUiNotesData>(s, customUiNotes_data);
    8.                 if (data == null) return;
    9.                 customUiNotes_data = data;
    10.                 if (saveAcrossSceneChanges)
    11.                 {
    12.                     SetSaver(data);
    13.                 }
    14.                 else if (data.scene == currentScene || data.scene == -1)
    15.                 {
    16.                     SetSaver(data);
    17.                 }
    18.             }
    19.         }
    20.  
    21.         public override string RecordData()
    22.         {
    23.             var currentScene = SceneManager.GetActiveScene().buildIndex;
    24.  
    25.             customUiNotes_data.scene = currentScene;
    26.  
    27.             List<string> temp = new List<string>();
    28.             foreach (var item in DialogueManager.masterDatabase.items)
    29.             {
    30.                 if (item.IsItem)
    31.                 {
    32.                     if (DialogueLua.GetItemField(item.Name, "Found").asBool)
    33.                     {
    34.                         temp.Add(item.Name);
    35.                     }
    36.                 }
    37.             }
    38.  
    39.             customUiNotes_data.findItems = temp;
    40.  
    41.             return SaveSystem.Serialize(customUiNotes_data);
    42.         }
    43.  
    44.         protected virtual void SetSaver(CustomUiNotesData data)
    45.         {
    46.             customUIQuest.findItems = data.findItems;
    47.             foreach (var item in data.findItems)
    48.             {
    49.                 DialogueLua.SetItemField(item, "Found", true);
    50.                 Debug.Log(item + " " + DialogueLua.GetItemField(item, "Found").asBool);
    51.             }
    52.         }
    When ApplyData and SetSaver are called, I get the correct values. But already during the game DialogueLua.GetItemField (item, "Found"). AsBool) returns false.

    2. What's the best way to get the entire list of items through DialogueLua?
     
  12. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    10,729
    Hi,
    If your Dialogue Manager uses the default value for Other Settings > Don't Destroy On Load (ticked), your data should remain across scene changes. If you have turned this off for some reason, consider turning it back on. Otherwise, you'll have to save and restore, as you said. To save and restore, add a Dialogue System Saver component to the Dialogue Manager. Then change scenes using SaveSystem.LoadScene() or SaveSystemMethods.LoadScene (component) or the LoadLevel() sequencer command. This will save the Dialogue Manager's Lua environment before leaving the old scene, and then restore it to the Dialogue Manager in the scene after loading the new scene. (More info: Save System)

    If the items are defined in your dialogue database, you can loop through DialogueManager.masterDatabase.items:
    Code (csharp):
    1. foreach (var item in DialogueManager.masterDatabase.items)
    2. {
    3.     Debug.Log("Current amount of " + item.Name + ": " + DialogueLua.GetItemField(item.Name, "Amount").asInt);
    4. }
     
    DREBOTgamestudio likes this.
  13. DREBOTgamestudio

    DREBOTgamestudio

    Joined:
    Jan 30, 2018
    Posts:
    37
    Thanks you. The problem was in the "Include All Item & Quest Data" field. Since without it, objects save only state, and I needed another field.

    upload_2020-7-31_8-38-48.png
     
    TonyLi likes this.
  14. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    10,729
    Dialogue System 90% Off - Power Tools Mega Bundle Ends Soon

    The Power Tools Mega Bundle ends in about 8 hours.

    The Dialogue System for Unity -- seen in Game of the Year Disco Elysium, Apple Arcade feature Jenny LeClue, Steam Summer Festival hits Gestalt: Steam & Cinder, The Way of Wrath, and Suzerain, and many, many other games, is still 90% off on the Asset Store in the Power Tools Mega Bundle.

    If you've been waiting to get the Dialogue System, now is a great opportunity to get it and many other excellent tools at a fantastic discount.

     
  15. formatc2013

    formatc2013

    Joined:
    Jul 4, 2016
    Posts:
    25
    @TonyLi thanks for your reply!

    Auto Focus is ticked!
    The problem only occurs, when the player starts the convo. With an NPC starting it works ok.
    With the player the dialog response buttons can only be focused with mouse. Once it is focued it works okay.

    I am using
    Code (CSharp):
    1. ShowAlert( message )
    in my dialogs script field, but the alert messages don't come up.
    But when I call ShowAlert on a DialogueSystemTrigger, they do come up.

    Had a look in my Hierarchy in Play mode and and the alert ui elements remain disabled when calling from dialog, and do get enabled when calling from DialogueSystemTrigger...

    Took a look here, but did not find any extra settings required.

    Just wondering, if you could help me out on that one!

    Many thanks!
     
  16. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    10,729
    Hi,
    Inspect your dialogue UI's Standard UI Menu Panel component, and make sure the Focus Check Frequency and Refresh Selectables Frequency values are non-zero:

    upload_2020-8-1_8-23-16.png

    Focus Check Frequency will check (e.g., every 0.2 seconds) to make sure one of the response menu buttons has navigation focus. Refresh Selectables Frequency will update the list of buttons in case you add or remove buttons while the menu is visible. (Some games do this when background game activity changes what menu options are available.)

    In addition, check for any of your own scripts that steal focus or manipulate the mouse cursor. Use a Dialogue System Events component to disable those scripts during conversations, as covered in the Interaction Tutorial. Use the OnConversationStart() event to disable the scripts and OnConversationEnd() to re-enable them.


    Inspect the Dialogue Manager, and tick Alert Settings > Allow Alerts During Conversations:

    upload_2020-8-1_8-28-3.png
     
  17. Grimir

    Grimir

    Joined:
    Sep 5, 2017
    Posts:
    18
    Hi @TonyLi,
    Is there a way to refresh the current state to recheck entries' conditions?
    For example, I'm at the state which has 4 possible responses, 2 of them check if a variable is true. When the response menu is active I continue with my gameplay and one of the variables used as a condition becomes true and I would like to refresh the response menu to include an option that was previously not displayed.
     
  18. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    10,729
    Hi @Grimir - Yes, call DialogueManager.UpdateResponses(). It will reevaluate the responses' conditions and update the menu.
     
  19. Grimir

    Grimir

    Joined:
    Sep 5, 2017
    Posts:
    18
  20. Korimaru88

    Korimaru88

    Joined:
    Jul 24, 2015
    Posts:
    11
    Hi,

    Trying to use this feature from the 2.1.1 update:
    I can't seem to find any typewritter settings on the dialogue system controller. Is there a menu I'm missing or do typewriter properties have to be modified via script at runtime?

    Edit: Never mind. Don't know why I didn't think to check the dialogue panel.
     
    Last edited: Aug 1, 2020
  21. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    10,729
    Dialogue System 2.2.8 - Quick Fix for Quest Editor Issue

    In version 2.2.8, some unnecessary fields were accidentally shipped with the demo's dialogue database template.

    If you've edited the demo's dialogue database and see these logs in the Console for either the demo's database or your own:

    Can't find type: CustomFieldType_ItemReward. Define a class with this type inside an Editor folder.

    then please go to the Templates page and select Menu > Reset:

    upload_2020-8-3_17-21-27.png

    If you still see any issues in quests you created in version 2.2.8, you can delete the extra fields in the quest. Expand the All Fields foldout at the bottom of the quest, and delete everything after Trackable. My apologies to those affected!
     
    Last edited: Aug 3, 2020
  22. MrZeker

    MrZeker

    Joined:
    Nov 23, 2018
    Posts:
    161
    Hello, i think i may be doing somethign bad,i been working with a friend in adding dialogues for a game, and he sent me the database last night, we have 84 different conversations, and the asset lags the editor terribly.
    And my computer is not old. Is there something that we may be doing wrong to generate such a huge lag in the editor?
    Im worried because in my next project there will at least 300 conversations.
     
  23. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    10,729
    Hi @MrZeker - If you're using Unity 2019.2 - 2019.3, please back up your project and update to Unity 2019.4.

    Unity 2019.2 and 2019.3 have a serialization performance bug that causes the editor to be very slow with medium to large assets, including dialogue database assets.

    Also, go to the Dialogue Editor's Database section, expand the Editor Settings foldout, and tick Fast Undo For Large Databases.
     
    MrZeker likes this.
  24. doug-in-a-box

    doug-in-a-box

    Joined:
    May 20, 2015
    Posts:
    7
    Hello, I'm currently trying your Evaluation Version (just wanting to make sure it works with rfpsp before i buy) and was wondering if I can still download the "Third Party Support ► Realistic FPS Prefab Support" that's mentioned in the third party integration tutorial.
    I know that RFPSP is a pretty old package but I like it still.
    thankyou
     
  25. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    10,729
    Hi @doug-in-a-box - Thanks for checking out the Dialogue System! Yes, the integration package is in Assets / Plugins / Pixel Crushers / Dialogue System / Third Party Support. Select menu item Assets > Import Package > Custom Package, and select Realistic FPS Prefab Support.unitypackage.
     
  26. doug-in-a-box

    doug-in-a-box

    Joined:
    May 20, 2015
    Posts:
    7
    Oh right that's easy thankyou. I for some reason though I would need to download it from someplace else.
    thankyou for your quick reply :)
     
  27. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    10,729
    Glad to help! :)
     
  28. MrZeker

    MrZeker

    Joined:
    Nov 23, 2018
    Posts:
    161
    oh thanks for the help.

    Is there any way to turn the whole script into a text file or similar to proof read everything and then sent it back to the asset withouth having to input everything in each conversation dialogue by dialogue?
     
  29. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    10,729
    Hi @MrZeker - Yes. The best format is Localization Export/Import. This will create spreadsheets containing your text. You can proofread them and then import them back into your dialogue database.

    There's also screenplay format, but it's export-only since screenplay format is too ambiguous to import back into a dialogue database. It's useful for handing off to people for general feedback or to hand to a cutscene or voice acting director.
     
  30. formatc2013

    formatc2013

    Joined:
    Jul 4, 2016
    Posts:
    25
    Hello everyone!

    I am using Invector as my TPC.

    I am facing a weird issue now.
    The Invector inventory system "nicks" my input for the dialogue system.

    I just added Invector's invenory to my main character, and noticed, that the A (controller) button doesn't select dialogue answers anymore... but enter does!

    Actually it does something, when I hit A, it jumps up to the top dialogue button! Please see the uploaded gif (in the first bit of the video I press the arrows, then I just keep pressing A(Submit) button).

    If I disable the whole inventory system before I press play it does work fine. If I disable it after hitting play, it doesn't.

    I noticed, that it doesn't listen to the Submit button I set on the DialogueManager prefab, it listens to the input mapping setting I set on the Invector VInventory panel.

    Many thanks
     

    Attached Files:

    Last edited: Aug 11, 2020
  31. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    10,729
    Hi @formatc2013 - Invector replaces the values in the Unity UI Event System's Standalone Input Manager (Submit, Cancel, etc.) with its own. Since the Dialogue System's Standard Dialogue UI uses the UI Event System, it will work with the values that Invector sets. Check the values on Invector's vInventory script on your inventory prefab.

    Make sure you've added the scripting define symbol USE_INVECTOR_INVENTORY? (Edit > Project Settings > Player > Other) This helps the integration's bridge script work better with Invector's UI Event System settings.
     
    Invector likes this.
  32. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    10,729
    Dialogue System 2.2.9 Released!

    Release Notes:

    Core:
    • Improved: If targeted Usable is disabled, Selector/ProximitySelector doesn't don't send OnUse message.
    • Improved: Sequencer preloading.
    • Improved: Added DialogueLua option to not translate / to _ in table indices.
    • Improved: EnableOnStart now has public property for m_component.
    • Improved: InputDeviceManager now has option for keyboard input to switch to keyboard mode.
    • Improved: StandardUIMenuPanel Block Input For Duration option can now handle custom PointerInputModule implementations such as Rewired.
    • Improved: Added DialogueManager Warm Up Conversation Controller option.
    • Fixed: Removed accidentally-added unnecessary fields from Demo database's quest template.
    • Fixed: Issue where custom node colors could become transparent.
    • Fixed: BarkGroupManager inspector error when changing scenes.
    • Fixed: Adding additional dialogue databases no longer overwrites duplicates with values from added database.
    • Fixed: CommonLibraryLua loading issue.
    • Fixed: Deprecation warning for Unity 2020.1.
    Third Party Support:
    • Adventure Creator: Added SyncACToLua() and SyncLuaToAC() Lua functions; dialogue cursor with non-zero click offset now properly positioned.
    • Invector: Updated for 2.5.3.
    • Inventory Engine: Added mmGetNumFreeSlots() & mmGetNumFilledSlots() Lua functions.
    • i2 Localization: Can now assign more than one dialogue database, and use ID or Name/Title for field name.
    • Rewired: Disambiguated reference to Rewired.Player in InputDeviceManagerRewired.
    • RT-Voice: Added pitch, rate, and volume settings to RTVoiceActor.
    • SLATE: StartConversation action now allows you to select a database.
    • Twine: Added option to split pipes into nodes.
    • UCC: Updated interaction script to work with UCC multiplayer.
     
  33. formatc2013

    formatc2013

    Joined:
    Jul 4, 2016
    Posts:
    25

    It does detect the button being pressed, but it doesn't seem to trigger selection. When I hit the button I assigned to Submit, it just snaps on the top of the dialogue options, just like in the gif I attached previously.

    Enter on the keyboard works well...


    Please see my attached image!

    upload_2020-8-11_14-57-48.png
     
  34. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    10,729
    Hi @formatc123 - That's because Invector's input settings (Edit > Project Settings > Input) only assign the return key to "Submit". Inspect the player's vInventory script, and change the Submit > Joystick input to A:

    upload_2020-8-11_10-46-12.png

    Or add joystick button 0 to the Submit definition:

    upload_2020-8-11_10-47-17.png
     
  35. formatc2013

    formatc2013

    Joined:
    Jul 4, 2016
    Posts:
    25

    @TonyLi Thank you for your aswers!

    Actually I did try assigning joystick button 0 and return to the Submit button and assign that to the vInventory before posting, but didn't work... Also tried with A but nothing...
    The issue is not that it does not detect the Submit or A button - it does!
    But it does not trigger the aswer selection... it just jumps up to the first dialogue option. I can only proceed by hitting enter on the keyboard...

    It's getting even weirder... If I set the Submit button to be the Submit button from the Input manager, on both the Dialogue Manager Prefab and the vInventory, and map the Submit button to joystick button 0 only, (basically it shouldn't do anything when I hit enter), it still accepts only enters, and just jumps to the top when pressing A.

    I also tried starting the convo using my keyboard only... and then if the convo comes up, and hit A it does work.

    I guess the Invector inventory system detects the Dialogue system as part of the inventory... and that's where it goes wrong.

    Maybe something to do with tags or layers?

    It all works fine, if I completely disable the inventory system.

    I guess the issue is related to the EquipmentDisplayWindow; please see attachment.
    It uses the same input axes (Vertical and Horizontal) to change around equipment, as the Dialogue Manager Prefab to jump between dialogue answers. They are both on, when I enter a conversation; and the equiments do change along with the aswers...

    Please see my input preset.

    Hope it helps.

    Any questions please ask!

    Many thanks

    Janos
     

    Attached Files:

  36. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    10,729
    Hi @formatc2013 - Here's an example. It's a copy of the Invector_ShooterMelee scene, with these changes:
    • Changed the vInventory's Input Mapping > Submit > Joystick to A.
    • Added a Dialogue System Invector Bridge to the player.
    • Added a Dialogue System Events to the player. Configured OnConversationStart() to disable the Inventory child's vInventory component and OnConversationEnd() to re-enable it.
    • Added a Dialogue Manager and NPC (a white capsule that plays a conversation when you run into it).
    It works in a project with Invector's default project settings (e.g., input settings).
     

    Attached Files:

  37. formatc2013

    formatc2013

    Joined:
    Jul 4, 2016
    Posts:
    25
    Awesome! I'll take a look in the next couple of days!

    Much appreciated!
    Thanks!
     
  38. formatc2013

    formatc2013

    Joined:
    Jul 4, 2016
    Posts:
    25
    @TonyLi
    I managed to test out the project you sent.
    I imported the my input presets, and the symptoms are the same!!!
    So I guess it is casued by my input mapping.
    Do you mind taking a look, by importing the preset?

    Many thanks
     
  39. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    10,729
    @formatc2013 - In case you didn't receive my PM, please grant me access to download the input presets.
     
  40. formatc2013

    formatc2013

    Joined:
    Jul 4, 2016
    Posts:
    25
    Ok, sorry just sent it over
    Thanks!
     
  41. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    10,729
    Thanks! Tick the Dialogue Manager's Input Device Manager > Always Auto Focus checkbox. After using your input presets, that's all I needed to change to get it working. Alternatively, add "LeftAnalogHorizontal" and "LeftAnalogVertical" to the Input Device Manager's Joystick Axes To Check. This will allow it to detect when you're using a joystick (similarly to what Invector does) so it will auto focus without having to tick Always Auto Focus.
     
  42. formatc2013

    formatc2013

    Joined:
    Jul 4, 2016
    Posts:
    25
    I think those were on by default! I did try it in an empty project, but the issue persists...

    I sent a link to your email to a Github repo of the Repro, do you mind taking a look?

    Many thanks
     
  43. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    10,729
    Thanks for the repro project. I'm downloading it now. I'll take a look and let you know what I find.
     
  44. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    10,729
    @formatc2013 - I'm still researching this. Off the bat, a few things to note:
    • In your project, you may want to import the Dialogue System's Invector Support unitypackage and add the Dialogue System Invector Bridge component to the player.
    • If you're using inventory, add the scripting define symbol USE_INVECTOR_INVENTORY.
    • I noticed that if I start a conversation and then deactivate Invector's vInput component (which is on an instantiated GameObject named vInputType), the joystick button correctly clicks the current response UI button. I'll look further into what's going on with vInput tomorrow.
     
  45. formatc2013

    formatc2013

    Joined:
    Jul 4, 2016
    Posts:
    25
    Awesome!
    Thank you!
     
  46. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    10,729
    Disco Elysium #1 in PC Gamer's Top 100 Games

    Congratulations to Studio ZA/UM! PC Gamer just selected Disco Elysium, made with the Dialogue System for Unity, for the #1 spot in their Top 100 Games list. Writes one of the editors:
     
  47. KonekoSoft

    KonekoSoft

    Joined:
    Aug 16, 2020
    Posts:
    4
    Hello,
    I have some questions about This Asset (I'm New on this)

    1- How to make NPC talk Conversation 2, or 3, or more?
    Sample:
    - The player goes to an NPC, then press F to talk (Activate Conversation 1) >> End Conversation 1
    - The player goes to that NPC again, then press F to talk (Activate Conversation 2 - Only if Player read Conversation 1) >> End Conversation 2.
    >>... Etc... Conversation 3, 4....

    I read the quick start, It has Conversation 1 sample only. When I talk to NPC again, it activates the same Conversation 1.

    2- How to stop PLAYER moving (Can't use AWSD or Arrow key to move while Player talking with NPC). I saw "Pause game during Conversation", but this is not good, it stops all other Objects animations.
     
    Last edited: Aug 16, 2020
  48. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    10,729
    Hi @KonekoSoft - Thanks for using the Dialogue System!

    Please see the Conversation Conditions tutorial. Then read How To: Run a Different Conversation the Second Time. It is part of the article How To: Run a Conversation Only Once.

    Please see the Interaction Tutorial. The second half of the tutorial explains how to stop the player.
     
  49. TaylorCaudle

    TaylorCaudle

    Joined:
    Feb 8, 2018
    Posts:
    61
    Hey, I can't seem to get this working with the Invector TPS. There's no Example scene, but I've tried using one of the packages in this thread, I added the USE_INVECTOR_INVENTORY to my scripting define symbols but now i'm getting script errors:

    Assets\Pixel Crushers\Common\Third Party Support\Invector Support\Scripts\InvectorInventorySaver.cs(84,55): error CS1061: 'vEquipArea' does not contain a definition for 'currentEquippedItem' and no accessible extension method 'currentEquippedItem' accepting a first argument of type 'vEquipArea' could be found (are you missing a using directive or an assembly reference?)


    They go away if i remove it from the list, but then I get the LUA errors because its missing them. Any reason for this? Would love to use it in my project.

    EDIT: I'm pretty sure this is because I'm still using Invector 2.5.2, and It looks like i bought right after you and they updated to 2.5.3
    Would it be possible to download an integration that worked with 2.5.2? Its a little tricky for me to update right now, so i'd like to be able to stick with the build I've got ATM

    EDIT: Just installed everything on a fresh 2.5.3 project, and now I'm still getting there errors even with everything setup properly.


    Dialogue System: Lua code 'return vGetItemCount(23) >= 1' threw exception 'Tried to invoke a function call on a non-function value. If you're calling a function, is it registered with Lua?'
    UnityEngine.Debug:LogError(Object)
    PixelCrushers.DialogueSystem.Lua:RunRaw(String, Boolean, Boolean) (at Assets/Plugins/Pixel Crushers/Dialogue System/Scripts/Lua/Lua Wrapper/Lua Interpreter/Lua.cs:226)
    PixelCrushers.DialogueSystem.Lua:Run(String, Boolean, Boolean) (at Assets/Plugins/Pixel Crushers/Dialogue System/Scripts/Lua/Lua Wrapper/Lua Interpreter/Lua.cs:127)
     
    Last edited: Aug 17, 2020
  50. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    10,729
    Hi @TaylorCaudle - The setup instructions are here: Invector Third Person Controller Integration.

    When you import the two integration packages, you should see an example scene. Make sure this runs properly first. You should be able to run up to the NPC and talk.

    Then add the scripting define symbol USE_INVECTOR_INVENTORY as described in the instructions' Inventory Management section. As a test, import the example scene from this post and make sure it works.
     
unityunity