Fungus v3.4.0

@chrisgregan chrisgregan released this Oct 22, 2016 · 147 commits to master since this release

This release mainly updates the Moonsharp Lua library to v2.0. This means games using FungusLua should now run fine on the WebGL platform. You can also use VS Code to debug Lua scripts, and Moonsharp is now included as C# source code rather than a DLL. Huge thanks to Xanathar for his amazing work on Moonsharp!

Known Issues

  • FungusLua generates runtime errors running Lua when using .NET scripting backend. The IL2CPP backend works fine.

Added

  • Added accessors for GameObject and Transform variables in Flowchart.cs
  • Added Flowchart.HasVariable() and GetVariableNames() - thanks murnyipl!
  • Added WaitForFrames property to GameStarted event handler. Default is wait for 1 frame (should reduce startup order issues).

Changed

  • Upgraded to Moonsharp 2.0. Moonsharp source code is now included in Fungus/Thirdparty/MoonSharp
  • Moonsharp and FungusLua now work in WebGL builds
  • Removed MoonSharp assembly from link.xml
  • Converted MoonSharp line endings to OSX for consistency with rest of project.
  • Updated documentation for Lua debugger (using VS Code)
  • Removed LuaEnvironment Remote Debugger option. A VS Code debug server always starts when running in the editor.
  • SayDialog now supports full variable substitution when setting character names.

Fixed

  • Fixed Command properties not copied when copying commands #546
  • Fixed PODTypeFactory and FungusPrefs classes are not registered #549
  • Fixed compile errors on .NET Core scripting backend
  • Fixed LuaBindings registered types in example scenes
  • Fixed MoonSharp warning when not building for an AOT platform
  • Fixed minor issues in some example scenes (e.g. missing sprite refs)

Downloads

Fungus v3.3.0

@chrisgregan chrisgregan released this Oct 13, 2016 · 169 commits to master since this release

This release is mainly focussed on tidying up the codebase and improving the documentation. The folder structure has changed a lot, so if you're upgrading an existing project make sure to delete the existing Fungus folder in your project before installing the new one.

Known Issues

Added

  • Added test for StopTweens does not stop a Tween with loop enabled #529
  • Added signals (pub-sub system) for Writer and Block events #539
  • All interfaces now have their own source files.
  • Added monodevelop project for editing docs files.
  • Added Flip option (<<< and >>>) to conversation system #527
  • Added WaitFrames command to wait for a number of frames
  • Added GetToggleState, SetToggleState commands and ToggleChanged event handler
  • Added Writer.Paused property to pause a writer from code.

Changed

  • Tidied up Fungus folder structure to organize scripts more logically
  • Migrated documentation to use Doxygen for help and API docs
  • Lots of misc improvements to documentation
  • Updated to MoonSharp 1.8.0.0
  • Documented using string facing parameter in stage.show() Lua function.
  • Documented <<< and >>> tags for conversation system.
  • Documented all public members for API docs.
  • All serialized fields are now protected, exposed via public properties as needed.
  • Moved all enums to namespace scope.
  • Moved global constants to FungusConstants static class.
  • Moved editor resources to the main resources folder
  • Fungus editor code moved to Fungus.EditorUtils namespace
  • Convert singletons to use a single FungusManager singleton #540
  • Renamed CameraController to CameraManager and MusicController to MusicManager
  • Changed float constant comparisons to use Mathf.Approximately
  • Added #region Public members to all non-editor classes
  • StringFormatter, TextTagParser and FungusPrefs classes are now static
  • Merged MenuDialog extension methods (used for Lua) with main MenuDialog class.
  • Change all public methods to use virtual
  • Removed all unnecessary using statements.
  • All class and member comments use standard c# xml comment style
  • Replaced foreach loops with for loops (avoids allocation for iterator)
  • Added changelog to Doxygen documentation

Fixed

  • Fixed Setting facing in lua only works if portraits are set to “FRONT” #528
  • Fixed Say command completes instantly after menu choice #533
  • Fixed broken mouse pointer in WebGL build of Drag and Drop
  • Fixed ObjectField nulls reference if object is disabled #536
  • Updated Unity Test Tools to v1.5.9
  • Fixed missing Process class error in Unity5.5b3
  • Fixed Spine.Unity namespace problem in integration scripts
  • Fix Regex for character names with "." & "'" #531 (thanks to Sercan Altun)
    Old Regex expression did not capture Character names with "." and "'". As a result characters with names like "Mr. Jones" or "Ab'ar" were not registering correctly.
  • Fixed Lua setlanguage() function
  • Fixed namespace issue in Spine integration.
  • Fixes all integration tests to pass when run on Windows Standalone.
  • Fixed Block inspector displayed for inactive flowchart #544

Downloads

Fungus v3.2.0

@chrisgregan chrisgregan released this Aug 18, 2016 · 413 commits to master since this release

Fungus 3.2.0

Some users reported issues with the MoonSharp DLLs when updating a project with the previous release. We recommend deleting the Fungus folder from your project before updating to a newer version.

Known Issues

Added

  • Added choose() and choosetimer() Lua functions for displaying list of menu options.
  • Added Conversation command and Lua function to perform long dialogue exchanges in a single command.
  • Added new Conversation examples

Changed

  • Clickable2D and Dragable2D components can now use legacy input or EventSystem events / raycasts.
  • Added DragAndDrop(EventSystem) example scene to show how to use the EventSystem option.
  • Made it easier to resize the default SayDialog
  • Updated Narrative examples to use the easier choose() function instead of menu()
  • Force MenuDialog to become active when using AddOption from Lua.
  • Converted tabs to spaces in all source files
  • Ensure the character cache is populated before accessing it
  • Added Serializable attribute to all variable classes.

Fixed

  • Added link.xml file to fix FungusLua not running on iOS builds
  • Portrait hide bug in Conversation Function #526
  • Unresponsive SayDialog after ClearMenu or *.StopAllBlocks(); #518
  • Can't select a Public variable from another flowchart #522
  • NullReferenceException with nameText in SayDialog #517
  • StackOverflowException in Writer with customized text object #516
  • stage.Show() not fading in a previously faded out character if portrait hasn't changed.
  • Missing .Value on _parameterName property.
  • Fixed missing component warnings
  • Updated MoonSharp to v1.6.0.0 (this time without changing the meta files).

Downloads

Fungus v3.1.0

@chrisgregan chrisgregan released this Jul 22, 2016 · 477 commits to master since this release

Fungus 3.1.0

Added

  • Flowchart automatically registers with LuaEnvironment for ExecuteLua commands #485
  • Clickable2D and Draggable2D can now use EventSystem events to block clicks on UI elements. Added new drag and drop demo scene to illustrate.

Changed

  • Default dialog image is now sliced, so can be resized to any width / height required.
  • Upgraded MoonSharp to v1.6.0.0
  • Added [System.Serializable] attribute to all Variable classes.

Fixed

  • Default dialog box now fits in a 5:4 ratio display #515
  • Dialog input causing an exception if no Event System is present in scene.
  • Missing module variable on round() function
  • Menu() Lua function only works once #511
  • Compile error for folks upgrading using the Fungus 3 unitypackage

Downloads

Fungus v3.0.0

@chrisgregan chrisgregan released this Jul 7, 2016 · 490 commits to master since this release

Fungus v3.0.0

Major release with powerful new Lua scripting support and many small improvements and fixes.
This release should be backwards compatible with projects created using Fungus 2. If you have any upgrading issues let us know on the forum.

Many thanks to the amazing Fungus community for all the suggestions, bug reports and encouragement!

Awesome github contributors:

Added

  • FungusLua: Lua scripting support for Fungus via wrapper components for using MoonSharp in Unity. #281, #317, #334, #237, #235, #232, #224
    • LuaEnvironment component: Execution environment for running Lua scripts.
    • LuaUtils component: Extends LuaEnvironment with lots of useful features.
    • LuaBindings: Maps Unity objects & components to Lua variables for use in Lua scripts.
    • LuaScript: Runs Lua code from a text file or from a string property.
    • LuaStore: Stores variables in a global table which persists across scene loads.
    • FungusModule: A set of utility functions for scripting Unity and Fungus from Lua.
    • FungusPrefs: An improved version of PlayerPrefs that can be easily used from Lua.
    • ExecuteHandler: Listens for any standard Unity event and calls a method on a component in the gameobject. #247
    • ExecuteLua command: Run some Lua script in a Fungus command. Return values can be stored in Fungus variables.
    • PODTypeFactory: Utility factory class for instantiating Plain-Old-Data (POD) types like Color, Vector3, etc.
    • Lots of FungusLua example scenes
    • Fungus documentation now has an extensive section on LuaScripting.
  • StringDataMulti: Like StringData, but uses a multi-line textbox in the inspector.
  • StopBlock command: Stop executing the named block.
  • Improved string substitution system. Now works with Lua global variables and Lua string table, as well as Flowchart variables.
  • Extend the string substitution system yourself using the new ISubstitutionHandler interface.
  • Added TaskManager library to Thirdparty folder. Allows better control over coroutine execution.
  • Show Line Numbers option in Flowchart. Shows the command index in the inspector (off by default). #231
  • Play Animation State command. Plays an animation state directly without a transition. #378
  • Open URL command #382
  • Links to community articles in the help docs #385
  • InfoText.cs component for displaying help information in the top-left of screen
  • "Play from Selected" and "Stop All and Play" context menu options in Block command list
  • Added Command Index property to Call command
  • LuaStore example scene to demonstrate persisting Lua variables between scene loads
  • Use stage.show(), stage.showPortrait & stage.hide() to control stage & portraits from Lua #490
    See FungusExamples/FungusLua/Narrative/PortraitController.unity example scene
  • Portrait functionality moved to new PortraitController utility class for easier scripting.
  • Say and Menu Dialogs now support standard input manager (joystick / controller support) #507 #210
  • Menu options can now be picked with keyboard only
  • Fast forward using Shift in Say Dialogs is now done using the Cancel input (Escape key by default).

Changed

  • Draggable sprite anchors at exact point user clicked.
  • Replaced string with StringData, int with IntegerData, etc. in many command properties. Use variables or constants.
  • Block.Execute renamed to Block.StartExecute, can now specify a command index to start at.
  • Say command: Set the Character using an object field or the dropdown menu. Can now select Character prefabs.
  • Improved Flowchart UpdateVersion system
  • Portrait image is now hidden at startup in SayDialog
  • Use DialogAudio volume property for starting volume on voiceover audio
  • WriterAudio now respects the volume property in all cases
  • Added short open source license info header to all source files
  • SetAudioVolume.waitUntilFinished property #495
  • String substitution uses StringBuilder to avoid string allocations (reduce garbage collection) #490
  • Embed string substitution keys in substitution text (recursive substitution up to 5 levels) #488

Fixed

  • SetDraggable2D filename now matches class name.
  • Unity 5.4 beta errors & warnings
  • CsvParser.cs and InvokeMethod lineendings should be consistent with rest of project.
  • Faulty indent levels when inspector is not displayed #380
  • Hide Portrait before Show Portrait breaks portrait system #384
  • Private variable values being reset with multiple flowcharts #389
  • Stage objects blocking raycasts #391
  • Writer voiceover clip always stops when text stops #393
  • Size tag in UI text is not supported #400
  • Clickable sprites can be clicked through UI objects #377
  • Don't destroy sprite objects in Scene Loader #386
  • Add links to community articles in the help docs #385
  • Control volume bug #464
  • Unity Test Tools compile errors in Unity 5.0
  • Edge of inspector window clipped incorreclty in Unity 5.4 beta #425
  • Child Object gets deleted when having a flowchart on parent and child. #475
  • Fixed command summary incorrect for Fade UI command #486
  • No Music clip selected error summary in Play Sound command
  • Jump command properties incorrect when block duplicated #504
  • menu() Lua command interactable param has no effect #493
  • Set Anim Integer/Float/Bool lose property settings #492
  • Can't select ExecuteBlock from Unity Event #496
  • Fixed aliased commandIndex property in Call command.

Other closed issues

  • GameObjects get duplicated when flowchart is on a different scene #373
  • TextMesh Pro integration #214
  • Clickable3D component #195

Downloads

Fungus v3.0-beta.3

@chrisgregan chrisgregan released this Jul 3, 2016 · 493 commits to master since this release

Fungus 3.0-beta.3

Previous Fungus 3 beta release notes

Many thanks to awesome contributors!

Added:

  • LuaStore example scene to demonstrate persisting Lua variables between scene loads
  • Use stage.show(), stage.showPortrait & stage.hide() to control stage & portraits from Lua #490
  • See FungusExamples/FungusLua/Narrative/PortraitController.unity example scene
  • Portrait functionality moved to new PortraitController utility class for easier scripting.
  • Say and Menu Dialogs support standard input manager (joystick / controller support) #507
  • Menu options can now be picked with keyboard only
  • Fast forward using Shift in Say Dialogs is now done using the Cancel input (Escape key by default).

Changed:

  • Added short open source license info header to all source files
  • SetAudioVolume.waitUntilFinished property #495
  • String substitution uses StringBuilder to avoid string allocations #490
  • Embed string substitution keys in substitution text #488

Fixed:

  • FungusLua setcharacter doesn’t set character name #503
  • Jump command properties incorrect when block duplicated #504
  • menu() Lua command interactable param has no effect #493
  • Set Anim Integer/Float/Bool lose property settings #492
  • Can't select ExecuteBlock from Unity Event #496
  • Fixed aliased commandIndex property in Call command.
  • Fixed incorrect final output using write whole words option

Downloads

Fungus v3.0-beta.2

@chrisgregan chrisgregan released this May 31, 2016 · 529 commits to master since this release

Fungus 3.0-beta.2

Added

  • Added Command Index property to Call command
  • Added LuaStore example scene

Changed

  • LuaScript will reinitialise if modified when playing in editor
  • Optimised string allocations when writing text with Writer.cs to reduce GC calls.

Fixed

  • Fixed character Name appears in Say Dialog when used from Lua #484
  • Fixed command summary incorrect for Fade UI command #486
  • Fix for uninitialized string value
  • Fixed can't set new values on iTween commands #479
  • Fixed Child Object gets deleted when having a flowchart on parent and child. #475
  • No Music clip selected error summary in Play Sound command

Downloads

Fungus v3.0-beta.1

@chrisgregan chrisgregan released this May 18, 2016 · 540 commits to master since this release

This is a minor bug fix release. Full list of features and fixes in Fungus 3 is available here.

Fixed

  • Can't set new values on iTween commands #479
  • Child Object gets deleted when having a flowchart on parent and child. #475

Downloads

Fungus v3.0-beta.0

@chrisgregan chrisgregan released this May 15, 2016 · 545 commits to master since this release

Fungus 3.0-beta.0

Added

  • FungusLua: Lua scripting support for Fungus via wrapper components for using MoonSharp in Unity. #281, #317, #334, #237, #235, #232, #224
    • LuaEnvironment component: Execution environment for running Lua scripts.
    • LuaUtils component: Extends LuaEnvironment with lots of useful features.
    • LuaBindings: Maps Unity objects & components to Lua variables for use in Lua scripts.
    • LuaScript: Runs Lua code from a text file or from a string property.
    • LuaStore: Stores variables in a global table which persists across scene loads.
    • FungusModule: A set of utility functions for scripting Unity and Fungus from Lua.
    • FungusPrefs: An improved version of PlayerPrefs that can be easily used from Lua.
    • ExecuteHandler: Listens for any standard Unity event and calls a method on a component in the gameobject. #247
    • ExecuteLua command: Run some Lua script in a Fungus command. Return values can be stored in Fungus variables.
    • PODTypeFactory: Utility factory class for instantiating Plain-Old-Data (POD) types like Color, Vector3, etc.
    • Lots of FungusLua example scenes
    • Fungus documentation now has an extensive section on LuaScripting.
  • StringDataMulti: Like StringData, but uses a multi-line textbox in the inspector.
  • StopBlock command: Stop executing the named block.
  • Improved string substitution system. Now works with Lua global variables and Lua string table.
  • Extend the string substitution system yourself using the new ISubstitutionHandler interface.
  • Added TaskManager library to Thirdparty folder. Allows better control over coroutine execution.
  • Show Line Numbers option in Flowchart. Shows the command index in the inspector (off by default). #231
  • Play Animation State command. Plays an animation state directly without a transition. #378
  • Open URL command #382
  • Links to community articles in the help docs #385
  • InfoText.cs component for displaying help information in the top-left of screen
  • "Play from Selected" and "Stop All and Play" context menu options in Block command list

Changed

  • Draggable sprite anchors at exact point user clicked.
  • Replaced string with StringData, int with IntegerData, etc. in many command properties.
  • Bock.Execute renamed to Block.StartExecute, can now specify a command index to start at.
  • Say command: Set the Character using an object field or the dropdown menu. Can now select Character prefabs.
  • Improved Flowchart UpdateVersion system
  • Portrait image is now hidden at startup in SayDialog
  • Use DialogAudio volume property for starting volume on voiceover audio
  • WriterAudio now respects the volume property in all cases

Fixed

  • SetDraggable2D filename now matches class name.
  • Unity 5.4 beta errors & warnings
  • CsvParser.cs and InvokeMethod lineendings should be consistent with rest of project.
  • Faulty indent levels when inspector is not displayed #380
  • Hide Portrait before Show Portrait breaks portrait system #384
  • Private variable values being reset with multiple flowcharts #389
  • Stage objects blocking raycasts #391
  • Writer voiceover clip always stops when text stops #393
  • Size tag in UI text is not supported #400
  • Clickable sprites can be clicked through UI objects #377
  • Don't destroy sprite objects in Scene Loader #386
  • Add links to community articles in the help docs #385
  • Control volume bug #464
  • Unity Test Tools compile errors in Unity 5.0
  • Edge of inspector window clipped incorreclty in Unity 5.4 beta #425

Other closed issues

  • GameObjects get duplicated when flowchart is on a different scene #373
  • TextMesh Pro integration #214
  • Clickable3D component #195

Downloads

Fungus v2.3.1

@chrisgregan chrisgregan released this Jan 29, 2016 · 794 commits to master since this release

Fungus v2.3.1

Fixed

  • Can't click on Say Dialog when a Menu Dialog is active #374
  • Set Audio Pitch: OnComplete not called when duration = 0 #369
  • Fade To View can sometimes not work in Unity 5.3 #370

Downloads