Blog

Fungus v2.2.0 now available!

Fungus v2.2.0 is now available from the download page.

Here's a summary of what's new in this release, the full set of release notes is available here

Write command

We've redesigned the text writing features in Fungus to be much more modular and robust.

There's a new UI > Write command which can write text to any Unity text object (UI Text, UI Input Field or Text Mesh). This supports all the same text tags as the Say command, like {b} bold and {w} wait and variable substitution & localisation.

To control the writing behaviour, you can now attach a Writer component to the text object to configure writing speed, punctuation pause, text colouring, etc. Attaching the new Writer Audio component will let you play typing sound effects as the text is written, including a new beep-per-character mode that plays random beeps selected from a list of audioclips.

Say Dialog

The Say Dialog system has been completely rewritten to use the same Writer and WriterAudio components as the Write command above, so you get all the nice new configuration options. For example, you can now display the unrevealed portion of a line of text using a custom color to give a Karaoke-style text effect.

The new Dialog Input component provides new options for handling player input. You can choose to only accept clicks on the dialog UI or on the Continue button. You can specify which keys can be pressed to advance through dialog, and there's a new option to hold the Shift key to auto-advance through character dialog. This is great for when you want to skip to a certain part of the conversation without clicking a hundred times.

The layout of the UI objects inside the Say Dialog prefab is now simpler and easier to customise. The Say Dialog now fades in and out automatically when writing text. Use the new Fade When Done property to specify if the Say Dialog should disappear once the Say command has finished.

There's a new Input Text example which shows how to read text from a UI Input Field into a Fungus string variable using the Get Text command.

Stage & portrait

We've fixed a number of issues in the portrait system. You can now use any size portrait images and it's easier to customise Stage positions.

Menu command

You can now add menu options that are visible but not selectable. The selectable state can be linked to the state of a boolean variable.

Localization

The Set Text and Write commands are now localisable, and you can integrate your own custom commands with the localisation system using the ILocalizeable interface.
The localisation system now correctly handles CSV files that use Windows-style line endings.

Scripting

With the powerful new Scripting > Invoke Event and Scripting > Invoke Method commands you can call methods on any Unity script. Pass multiple parameters, store return values in Fungus variables and even manage coroutines. If you're looking to integrate Fungus with another Unity asset this can be an easy way to make it work without writing custom commands.

The new Quit command will exit the application on supported platforms.

Graphics

We've added the Sprite > Set Sprite Order and Sprite > Set Sorting Layer commands to give more control over Sprite render order.
The new Set Mouse Cursor command lets you set a custom mouse cursor. Take a look at the DragAndDrop example to see how it works.

There's a new Fullscreen command which sets the application to fullscreen mode on supported platforms.

Audio

The Control Audio command now works correctly with multiple Audio Source objects.

Process changes

We are now using the Unity Test Tools framework for unit and integration testing. All new features and bug fixes have an automated test where possible. This is already making a big difference to stability.

We've also changed our Github development process so every change is now made on a feature branch and integrated via a pull request. In practice this should allow us to have more frequent releases.

Upgrade notes

We made a LOT of improvements to the text writing features in this release. Unfortunately these changes are likely to break existing customised Say Dialogs in your project. If you upgrade an existing Fungus project and find the Say Dialogs are no longer working you will need to delete your Say Dialogs and create new ones.

So what's next?

Fungus v2.3 will focus on adding a new set of commands to control UI objects in Unity. The goal is to make it easy to create whatever UI layout you want inside Unity and then control it from Fungus.