Hey all, been a while. Along with a many small improvements and bug fixes, there’s been some new developments to check out, so let’s do a quick catch up from 3.7, up to and including 3.12.
Global Variables
A new access or modifier for variables along with public and private. Variables set to Global are backed by variables stored on the FungusManager, meaning they exist between scenes. All global variables declared across all flowcharts of matching name and type are backed by the same variable without any other form of synchronisation. See GlobalVar demo and doco.
Priority Signals
These don’t have an impact on the running of Fungus itself but are intended to allow Fungus to raise and lower signals to external user C# code in a generic way. For example, raising the priority when interrupting gameplay for a conversation and then lowering once the conversation is over. See the FirstPersonDemo for sample usage and doco.
Text Variation
Heavily inspired by the system in Ink. Text in Say and Menu can now be either varied during repeats or phrases randomised entirely, see TextVariation demo and doco.
Increased TextMeshPro support (Text Adapter)
Text elements in Say and Menu and other commands now internally use a TextAdapter that will look for Text, MeshText, TMPro text and use whichever is found. See demos in the TextMeshPro folder for samples.
BlockReference
Provides a standard and friendly way of selecting a block to target in user C# script. See doco.
VariableReference
Provides a standard and friendly way of selecting a variable to target in user C# script. See doco.
FirstPerson Demo
Shows simple use of Fungus in a 3D scene, including Priority Signals, physics EventHandlers, and interactions with c# scripts.
Compatibility and Lite releases
On the releases page, each release will now have a Lite release, regular release but without the FungusExamples so that download and unpack is smaller and faster for users that do not need the examples. The Compatibility release is targeting specific older version(s) of unity in the hope to ease the process of using new Fungus features in older versions of Unity. At the moment, this Compat release should be used if you are not on 2019.2 or newer and should support upwards from 2017.4.
Editor
Searchable Popup Lists - Adding Commands, Variables and EventHandlers all now use a searchable popup window similar to the AddComponent menu on Unity GameObjects. Double clicking the triggering buttons will show the older menus, you can also disable the new searchable menus in ProjectSettings->Fungus if you prefer the old ones.
FlowchartWindow performance improvements, more responsive for flowcharts with lots of blocks.
Variable Use shown for substitutions - HasReference on Commands expanded to include caching of variables used by a command, see RefreshVariableCache for more details.
FindReferences style logic - Blocks show a Callers array in the inspector and right clicking a Variable can log to console the places it is referenced in the scene.
FlowchartWindow Search - now shows blocks based on search term appearing in SearchableContent like summaries, not just block names.
ProjectSettings->Fungus configures and info added to help identify Fungus version and locate required assets.
And More
There’s some new commands. The documentation now lives on the github wiki, link. The repository workflow is now closer to gitflow, with master being the most recent full release and all PRs going into the develop branch.