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. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,697
    Hi Ron, you'll need the example menu script in the version that's coming out today. Here's why: Increment On Destroy increments a variable when it's destroyed. This works great during gameplay. However, when you load a new level, Unity destroys all GameObjects in the old level, which also invokes Increment On Destroy. The example menu script now calls a PersistentDataManager method that disables Increment On Destroy (and similar persistent data components) prior to loading the level.

    I also just finished implementing and testing a simplified component called Persistent Destructible that will also be in today's release. It combines the functionality of Increment On Destroy and Persistent Active Data, so you don't need to set those up any more. Just add Persistent Destructible to any object, and it will take care of everything.
     
  2. ronaldomoon

    ronaldomoon

    Joined:
    Jan 24, 2014
    Posts:
    87
    Awesome! Thanks again, Tony. Please e-mail me a link when you get it up on your site. I can e-mail you the invoice # again if you need me to.
     
  3. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,697
    Will do. No need to email the invoice number again. Just finishing up RPG Kit 2.1 testing this afternoon, and then I'll release it.
     
  4. ronaldomoon

    ronaldomoon

    Joined:
    Jan 24, 2014
    Posts:
    87
    Sounds good! Thanks for the great support.
     
  5. Pauloxande

    Pauloxande

    Joined:
    Feb 8, 2014
    Posts:
    110
    Tony how do you take your mouse and use a button to confirm
     
  6. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,697
    Hi Pauloxande, I don't understand. Would you please describe your goal in more detail?
     
  7. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,697
    The Dialogue System for Unity 1.3.2 is now available on the Pixel Crushers customer download site!

    If you need access, please PM me your invoice number.

    Unfortunately, there's an issue with the RPG Kit 2.1 NGUI dialogue panel, so this version doesn't include updated support for RPG Kit 2.1. I'll rebuild the NGUI controls tomorrow and post it as a patch on the customer download site.

    I will also be submitting an updated Dialogue System package to the Asset Store as v1.3.2.1, which will include the RPG Kit 2.1 support package. It will otherwise be exactly the same as v1.3.2 available now on the download site. If you don't use RPG Kit 2.1, you can download and use v1.3.2 right away.

    This release includes many improvements. Some highlights are:
    • New Voiceover Script exporter and entrytag feature to simplify sequences.
    • New keyword 'default' for the Camera() sequencer command, and new Default Camera Angle component to specify different default camera angles for each actor.
    • New SwitchCamera() sequencer command
    • New Selector Follow Target component. Add it to your player (along with Selector/Proximity Selector) to place the reticle and activation text on the target instead of the top of the screen.
    • Save system improvements, including new Persistent Destructible component.
    • CSV import & export, and a template for writing your own converters.
    • UFPS Mobile-Addon support.
    Next up, after the RPG Kit 2.1 support update tomorrow, is Master Audio support and a major overhaul to the documentation and video tutorials!
     
    Last edited: Jul 26, 2014
  8. Pauloxande

    Pauloxande

    Joined:
    Feb 8, 2014
    Posts:
    110
    how do you not use the mouse in dialogues, using a keyboard button to confirm or, if using a button with UFPS Mobile without using a mouse to point and confirm
     

    Attached Files:

    • Sem.png
      Sem.png
      File size:
      1.2 MB
      Views:
      896
  9. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,697
    Hi Pauloxande, to enable keyboard/gamepad navigation, inspect your UI's Response Panel. Under Navigation, tick Enabled. (This is for Unity GUI.)



    For UFPS Mobile, see the example in the UFPS Mobile Addon support package. It just uses Unity GUI, which is designed to work with touch also.
     
  10. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,697
    The Zerano RPG Kit 2.1 support package is now available on the Pixel Crushers customer download site. If you need access, please PM me your invoice number. This package is for the Dialogue System v1.3.2. If you've already imported an older version of the support package, please delete the Third Party Support/RPG Kit folder before importing this updated package.

    This support package is also in 1.3.2.1, which is pending review on the Asset Store.

    The setup page is here: Configuring the Dialogue System for RPG Kit 2.1

    If you have any questions or feature requests, please let me know!
     
    treshold likes this.
  11. Archania

    Archania

    Joined:
    Aug 27, 2010
    Posts:
    1,662
    Thanks Tony! Awesome work as always.
     
  12. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,697
    I received a question about setting up shops and conversations. This week, the Dialogue System's documentation and video tutorials are getting an overhaul, starting with RPG Kit 2.1. Everything will be in easy-to-follow, step-by-step recipes.

    In the meantime, here's a quick set of instructions:

    You'll set up shops in your NPC's state machine. For example:
    1. Add a state called Shop. It's easiest to start with the example Shop NPC's state machine, since this already has all the actions necessary to open and close the shop window. You'll just want to get rid of the OnClick transition, since presumably OnClick will transition to your conversation state instead.
    2. Create a Boolean parameter called OpenShop. Leave is false (unticked).
    3. Create a transition from your conversation state to the Shop state. The condition for this transition is that OpenShop is true.
    4. In the dialogue entry that switches to the shop, use this sequence command:
    Code (csharp):
    1. SetStateBool(this, OpenShop, true)
    Your state machine window will look something like this:

     
  13. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,697
    Version 1.3.2.1 is now available on the Asset Store! It's the same as 1.3.2, which was available earlier on the Pixel Crushers download site, but it includes RPG Kit 2.1 support.

    Version 1.3.2.1:
    • Editor:
      • Added: Voiceover Script exporter.
      • Added: CSV importer & exporter.
      • Added: Template for writing custom converters.
    • Cutscene Sequences:
      • Improved: Support for non-Camera objects (e.g., Oculus OVRCameraController) for the sequencer camera.
      • Added: entrytag keyword (unique for each dialogue entry), more-automated process for adding voiceover.
      • Added: Keyword 'default' for Camera() command, plus Default Camera Angle component for actors.
      • Changed: Default Sequence is now Camera(default); required Camera(default,listener){end}}
      • Added: SwitchCamera() command.
      • Fixed: AnimatorTrigger() sequencer command now finds Animator in children like other AnimatorXXX() sequencer commands. Misc:
      • Added: SelectorFollowTarget (see Topdown Demo for example).
      • Added: Raycast All checkbox in Selector.
      • Fixed: UnityTextField now handles any enter or return key (to address Mac webplayer issue).
      • Changed: BarkTrigger.OnTriggerEnter[2D] uses target if assigned, otherwise triggering object.
      • Changed: PersistentPositionData no longer needs GameObject to be predefined in Actor table.
      • Added: PersistentDestructible component, GameSaver.ResetGame(), PersistentDataManager.LevelWillBeUnloaded()
    • Quests:
      • Added: QuestLogWindow now plays "Abandon Sequence" (if it exists) when abandoning quests.
      • Fixed: QuestLogWindow was setting QuestInfo.abandonable & trackable when showing completed quests, which incorrectly showed Track/Abandon buttons for them.
    • Third-Party Support:
      • (NGUI)
        • Added: DualSubtitleNGUIDialogueUI and example.
        • Added: NGUIResponseButton.SetButtonColor/SetLabelColor checkboxes, made NGUIResponseButton.SetColor virtual
        • Changed: NGUITextFieldUI's Text Field property now accepts a UIInput, not a UILabel. If you use TextFields, you must reassign the property.
      • (PlayMaker) Added FSMEvent() sequencer command, GetQuestAbandonSequence action.
      • (plyGame) Added GetQuestAbandonSequence block; Dialogue System plyEvents are now saved to local variables instead of temp variables.
      • (RPG Kit) Updated to support RPG Kit 2.1.
      • (UFPS) Added support for Mobile-Addon; Enables/disables crosshair component instead of changing texture.
      • (UFPS AI-Addon) Suspended support.
     
  14. Pauloxande

    Pauloxande

    Joined:
    Feb 8, 2014
    Posts:
    110
    Hello tony do to when to destroy the boxes and increment the variable "Destruct" shoot in the box, it destroys more does not increase the variable
     

    Attached Files:

  15. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,697
    Hi Pauloxande, remove the Increment On Destroy component. The Persistent Destructible component will keep track of the box. You only need Increment On Destroy if you need to keep track of how many boxes the player has destroyed.
     
  16. Pauloxande

    Pauloxande

    Joined:
    Feb 8, 2014
    Posts:
    110
    Yes I've done it and nothing, the variable does not change
     
  17. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,697
    Please set the Dialogue Manager's Debug Level to Info. Then play the game and destroy a crate. Then email the editor.log file to tony (at) pixelcrushers.com.

    Would you also take another screenshot and email it to me (or post it here)? Please include the crate's Inspector view and the Console. I'm concerned about the NullReferenceException in the Console. There isn't anything in Persistent Destructible that should raise a NullReferenceException, so I hope that this will be gone now that you removed the Increment On Destroy script.

    If you'd like to email me a project or unitypackage that demonstrates the problem, I'll be happy to take a look at it.

    Also, note that the variable name is set to "Destruct". If any other crates are set to "Destruct", then this will cause a conflict. If you leave the variable name blank, it will use the name of the GameObject for the variable name.
     
    Last edited: Jul 30, 2014
  18. Pauloxande

    Pauloxande

    Joined:
    Feb 8, 2014
    Posts:
    110
    I've done with several variables, nothing worked, look at this screen
     

    Attached Files:

  19. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,697
    Hi Pauloxande, I have a few questions:

    1. Do you want to use Increment On Destroy, Persistent Destructible, or both? If you only want the saved game to remember that the crate was destroyed, use Persistent Destructible. If you want to keep a count of how many crates were destroyed, use Increment On Destroy.

    2. How are you destroying the crate? vp_DamageHandler only deactivates the object. vp_Grab lets you grab and throw, but it doesn't destroy anything.

    3. Does your scene have a Dialogue Manager? If not, run the wizard. (Window > Dialogue System > Tools > Wizards > Dialogue Manager) I see that the Dialogue System reported other errors above, so I suspect that something is missing. The Dialogue Manager has the Lua environment. If you don't have a Dialogue Manager, Increment On Destroy won't have a Lua environment to increment.
     
    Last edited: Jul 31, 2014
  20. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,697
    A patch is available on the customer download site. You only need to apply it if you're affected by the Persistent Position Data bug described in the first bullet. This is a patch for v1.3.2.1, so please import it on top of your existing Dialogue System v1.3.2.1 folder. It includes:
    • Fixed: Persistent Position Data was incorrectly saving position values >= 1000.
    • Added: Custom icons for dialogue databases and the Dialogue Manager GameObject.
    • Restructured menu items to integrate more seamlessly with Unity editor.
    If you need access to the customer download site, please PM me your invoice number.
     
  21. Pauloxande

    Pauloxande

    Joined:
    Feb 8, 2014
    Posts:
    110
    Two things: how do to put my soldier with icon and disappear after death, placed in several ways and nothing
    I think it has to do with the bullet pistol or machine gun

    the "Increment On Destroy" script gives error "DialogueManager.Instance.BroadcastMessage (" UpdateTracker "SendMessageOptions.DontRequireReceiver);
    Look at the soldier put everything you said but it does not change the icon

    How do I fix this and thanks for the tips
     

    Attached Files:

    Last edited: Jul 31, 2014
  22. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,697
    Hi Pauloxande, since you're using UFPS, you should use vp_DamageHandler to handle the soldier's death, not DieOnTakeDamage. UFPS weapons send a message "Damage(float)". The Dialogue System's example script, DieOnTakeDamage, expects to receive a different message "TakeDamage(float)", so it won't occur when the soldier is killed by a UFPS weapon.

    The catch with vp_DamageHandler is that it doesn't destroy the soldier. It only deactivates it. So the soldier never receives an "OnDestroy()" message. This means it won't trigger IncrementOnDestroy or PersistentDestructible.

    Later today, I'll try to post some example scripts here that will listen for vp_DamageHandler's "Die()" message instead. To make the icon disappear, you can use a sequencer command to disable the child GameObject that has the icon, or the KGFMapIcon() sequencer command to change the icon to different one.

    Does your scene have a Dialogue Manager GameObject? If you could please answer this question, it would be very helpful.

    If the scene does not have a Dialogue Manager, it will cause all of the errors you reported.

    Also, how are you destroying the soldier and crate? Are the GameObjects actually being destroyed, or are they only being deactivated?
     
  23. Pauloxande

    Pauloxande

    Joined:
    Feb 8, 2014
    Posts:
    110
    has Diolague Manager, who is getting a "Sequence Trigger" how will I make the trigger because it has an option to trigger after the "vp_DamageHandler" reaches zero.
    Or how to do that when he changes his "Crate" to "BreakingCrate" change the icon for the "BreakingCrate" that will already be saved in prefab Or when change add the variable
     
    Last edited: Aug 1, 2014
  24. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,697
    I posted an updated UFPS Support package on the customer download page. You can also download it right here.

    1. It includes a new script Dialogue System On Die. Add this to your crate. On this script, you can:
    • Tick Destroy if you want to destroy the object instead of just deactivating it.
    • Specify a Sequence that can use KGFMapIcon() to change icons, Audio() to play audio, etc. The "speaker" is the Dialogue Manager object, and the "listener" is the crate. Leave blank if you don't want to play a sequence.
    • Specify Lua Code that you want to run. Leave blank if you don't want to run any Lua code.
    • Specify a Variable To Record Death. This will allow the crate to remember that it was killed when you load a game. You don't need to define this variable ahead of time in the dialogue database. Leave blank if you don't want to record death.
    • Specify a Variable To Increment if you want to keep track of how many crates you've destroyed. You don't need to define this variable ahead of time in the dialogue database. Leave blank if you don't want to keep track.

    2. The example scene contains a destructible crate that demonstrates this script.
     
  25. Pauloxande

    Pauloxande

    Joined:
    Feb 8, 2014
    Posts:
    110
    It worked very well thank you Tony
    One more thing works with AI SOLDIER?
     
  26. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,697
    What is AI SOLDIER?
     
  27. Pauloxande

    Pauloxande

    Joined:
    Feb 8, 2014
    Posts:
    110
    UFPS AI SOLDIER
     
  28. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,697
    Hi Pauloxande,

    If you're referring to the AI Soldier in UFPS AI-Addon, you can still use the UFPS AI-Addon Support package in Third Party Support. But development on AI-Addon has been suspended for now. The UFPS devs are focusing on multiplayer support and the Mobile Addon. I believe they plan to rewrite the AI-Addon in the future.
     
  29. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,697
    Game developer and Dialogue System user Oded Sharon's Bolt Riley is now on Kickstarter:



    If you're a fan of reggae or adventure games, check it out and consider supporting a fellow developer in this great-looking game!
     
  30. JakeT

    JakeT

    Joined:
    Nov 14, 2010
    Posts:
    34
    Hi Tony, I'm really liking the Dialog System that you've developed. Are you still working on Twine integration? I've got a Mac so Chat Mapper is not ideal (unless I'm running it in parallels) and articy is too expensive for now. I've been experimenting with Twine and it looks like it could accommodate the main things I'm looking to do with it (although not 100% sure what I'm missing from Chat Mapper). I was able to setup a whole dialog tree very quickly and it has some basic variable setting capabilities. Is Twine integration still planned? Thanks!

    Jake
     
  31. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,697
    Hi Jake, yes, Twine integration is coming. It's been bumped a few times because it's just not expressive enough (data-wise) to cover everything in the Dialogue System such as detailed actor data, items, quests, and the Lua scripting environment. But it works fine for basic branching conversations. I'm in a big push right now to overhaul the documentation in the next release, but I can get Twine into the following release. In the meantime, consider using the built-in Dialogue Editor. You already paid for it with the Dialogue System, and it can of course do everything that the Dialogue System offers. In the Dialogue Editor, you can switch between a node-based editor like Twine, Chat Mapper, and articy:draft; and an outline-based editor like the Dragon Age toolset.
     
  32. longroadhwy

    longroadhwy

    Joined:
    May 4, 2014
    Posts:
    1,551
    TonyLi,

    Would your product be suitable for question and answer type of quiz system? Even though your product is specific for dialogue it would appear it could be used for a quiz type of system. Do you have any comments on this idea?
     
  33. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,697
    Hi longroadhwy, yes! It's very easy to do multiple-choice questions, and you can also get freeform text input from the user. Since the engine underneath has a simple-to-use Lua scripting environment, you can randomize question content, change the line of questioning based on the user's previous activity, and more. It also has a cutscene system (with cutscenes tied to any question or answer) and built-in optional timer that would make it easy to set up You Don't Know Jack-style quiz games. If you decide to go with the Dialogue System, I'll be happy to help you set it up to do this; feel free to post here, PM me, or email me directly at tony (at) pixelcrushers.com.
     
  34. longroadhwy

    longroadhwy

    Joined:
    May 4, 2014
    Posts:
    1,551
    Yes, I would be interested in help how to set it up.

    Great news. I purchased Dialogue System a while back and I just updated today to 1.3.2.1. I have not looked it in any detail yet.

    Any books you recommend on LUA? I saw 978-8590379850 (Programming in Lua, 3rd edition) on amazon. I did not look at the Lua website
     
  35. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,697
    I found the Lua website documentation to be sufficient, and it's free. :)

    If you're not in a hurry, I suggest waiting until Monday to look into the Dialogue System in detail. I'm going to release a completely-overhauled manual on Sunday. But if you're inspired to dig into it this weekend, feel free to contact me with any questions.
     
    sqallpl likes this.
  36. longroadhwy

    longroadhwy

    Joined:
    May 4, 2014
    Posts:
    1,551
    Thanks. I will wait till the new manual is available. But I will start looking into Lua while I wait.
     
    Last edited: Aug 8, 2014
  37. benflock

    benflock

    Joined:
    Jul 11, 2013
    Posts:
    24
    hi

    i'm trying to do something which i'm sure is simple and i've jsut been staring at it for too long.

    using Ngui i would like to use a continue button like you can with the unity GUI (as in select that its always there and allocate the button) but can't seem to find a way to make it work?


    - also i looked at the documentation and some oyher answers on here about sending the onContinue to the UI, but i can't quite get my head round it,

    thanks a lot

    b
     
    Last edited: Aug 10, 2014
  38. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,697
    Hi Ben, I'm hard at work overhauling the documentation, which should make the process clearer. In the meantime, here are the steps:

    1. On the Dialogue Manager GameObject, set Subtitle Settings > Continue Button to Always.

    2. Add continue button(s) to your dialogue UI. In the "Basic NGUI Dialogue UI with Continue Button" prefab, the PC and NPC subtitle panels each have a button named "Continue Button". If you don't show PC subtitles, you don't need a PC continue button.

    3. Assign the button(s) to the NGUI Dialogue UI component:



    4. On the button's UIButton script, set Notify to your NGUI Dialogue UI. Then select "NGUIDialogueUI/OnContinue" from the pop-up menu:

     
  39. benflock

    benflock

    Joined:
    Jul 11, 2013
    Posts:
    24
    hi Tony

    thanks for getting back to me - great support as ever.

    where i'm getting stuck is that i don't have a continue button variable on my nguiDialogueUi Script....

    i downloaded the most recent version of the system in case that was it and still nothing

    i'm sure i'm not doing something obious

    cheers

    b
     
  40. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,697
    Make sure to also reimport the "Third Party Support/NGUI 3.x Support" package. If that doesn't fix it, you can send your project to tony (at) pixelcrushers.com and I'll be happy to take a look at it.
     
  41. benflock

    benflock

    Joined:
    Jul 11, 2013
    Posts:
    24
    cheers Tony

    could the issue be that i only have NGUI 2X?

    b
     
  42. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,697
    Yes, sorry. NGUI 2 support was suspended quite a while ago. I'm not even sure that the NGUI developers support NGUI 2 it any more.

    If you're really in a pinch and can't upgrade to NGUI 3.x, try importing the NGUI 2 scripts from the the Dialogue System v1.3.1's RPG Kit Support package. (Back up your project first, just in case!) RPG Kit 2.0 used NGUI 2, so I had to add some updates to the NGUI 2 support scripts in the RPG Kit package, but I didn't back port them to the original NGUI 2 support package. I don't recall if the updates include the continue button, since RPG Kit 2.1 now uses NGUI 3.
     
  43. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,697
    The new manual is nearing completion. In the meantime, a new patch is available on the Pixel Crushers download site. If you need access, please PM me your invoice number. The patch is optional. You can apply it on top of your existing Dialogue System folder if you want to take advantage of any of the new features or bug fixes.

    The patch includes:
    • [2014-08-10] Added: Localization of alert messages, quest titles, and any other field.
    • [2014-08-10] Audio(), AudioWait(), AudioWWW(), Voice() observe the value of Lua variable “Mute” to skip playing audio
    • [2014-08-02] Fixed: Dialogue Manager > Allow PC Subtitle Reminders would always show PC subtitle even if NPC spoke last line.
    • [2014-07-31] Updated: UFPS support package. It adds a new Dialogue System On Die component and a destructible crate in the example scene.
    • [2014-07-30] Fixed: Persistent Position Data was incorrectly saving position values >= 1000.
    • [2014-07-30] Added: Custom icons for dialogue databases and the Dialogue Manager GameObject.
    • [2014-07-30] Restructured menu items to integrate more seamlessly with Unity editor.

    The download site also contains an updated Adventure Creator support package:
    • [2014-08-02] Fixed: Local variables weren’t being sync’ed to Lua after scene changes.
     
  44. jfzhu

    jfzhu

    Joined:
    Jul 2, 2013
    Posts:
    5
    I still want to know whether this version can localize the actor's name?
     
  45. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,697
    The patch on the customer download site can localize the actor's name. If anyone needs access, please PM me your invoice number. Tomorrow, I'll submit version 1.3.3 to the Asset Store and publish it on the customer download site. This version will also support localization.
     
  46. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,697
    The Dialogue System for Unity v1.3.3 has been submitted to the Unity Asset Store and is now available on the customer download site. If you need access, please PM me your invoice number.

    Version 1.3.3
    • Core:
      • Added localization of alert messages, quest titles, and any other field.
      • Added: DialogueManager/DialogueSystemController.GetLocalizedText()
      • Improved: In Dialogue Editor, Ctrl+Click now simulates right clicks.
      • Improved: Audio(), AudioWait(), Voice() sequencer commands check the value of optional Lua variable "Mute".
      • Changed: Rolled Editors and Examples sub-namespaces into the main PixelCrushers.DialogueSystem namespace.
      • Changed: Added dialogue database gizmo, restructured menu items to integrate more seamlessly with Unity editor.
      • Fixed: Lua environment wasn't loading basic libraries (e.g., math).
      • Fixed: Dialogue Manager > Allow PC Subtitle Reminders would always show PC subtitle even if NPC spoke last line
      • Fixed: PersistentPositionData with positions >= 1000
    • Third Party:
      • Adventure Creator:
        • Fixed: Skipping cutscenes with conversation actions now closes conversations cleanly.
        • Fixed: Local variables wouldn't sync after changing scene.
      • Animator Timeline Editor: Added support.
      • CoreGameKit: Updated support for CoreGameKit v3.2.1.9.
      • Master Audio: Added support.
      • UFPS: Added DialogueSystemOnDie, added destructible crate to example scene.

    The documentation redesign has been a major undertaking. I think you'll all be pleased with the new documentation, but some parts are still under construction. I didn't want to delay the release of v1.3.3 any further just because of the documentation revision.

    Next on the roadmap:
    • Revising video tutorials and finishing the documentation revision
    • Action-RPG Starter Kit and Platformer Action-RPG Kit support
    • Twine import
    • Optional NLua support (for Unity Pro users)
     
  47. Silly_Rollo

    Silly_Rollo

    Joined:
    Dec 21, 2012
    Posts:
    501
    What's the advantage of using NLua?
     
  48. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,697
    Hi! NLua has two advantages:

    1. If you're running a large Lua script, it may run faster. In normal Dialogue System activity, most of the time is spent elsewhere, so this won't translate into much benefit specifically for Dialogue System stuff. But some people are using Lua for more than the Dialogue System.

    2. NLua implements LuaInterface. LuaInterpreter doesn't. LuaInterface provides a nice way to access Lua variables using C# notation -- for example, you can access Lua tables with a syntax similar to C# arrays. LuaInterpreter is slightly more unwieldy; you access Lua table elements through accessor methods instead. But again this doesn't affect the Dialogue System specifically.

    But NLua has two disadvantages:

    1. It uses P/Invoke, so it requires Unity Pro.

    2. It's not Windows Store compatible.

    In the next version, I hope to provide it as an option, but the default will still be LuaInterpreter.
     
  49. Silly_Rollo

    Silly_Rollo

    Joined:
    Dec 21, 2012
    Posts:
    501
    Sounds like if you have Pro and don't care about Windows Store NLua could be more useful if you want to use LUA for more than just dialogue system components.
     
  50. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,697
    It could be. To me it's mostly a syntactical thing, but the convenience of the syntax may be worth it if you're doing a whole lot of Lua<-->C# crossover. You can register C# methods as Lua functions the same in both LuaInterpreter and NLua, which is pretty much the only non-pure Lua feature the Dialogue System uses. For most projects there's no difference in performance, and you might as well get Windows Store compatibility by using LuaInterpreter. I did extensive benchmarking of KopiLuaInterface, KeraLua, NLua, and LuaInterpreter, and there was no measurable difference in the speed of Dialogue System operations. But if you're running a whole lot of arbitrary code through Lua, you will probably see some performance increase with NLua.