So a game dev from Winnipeg put together a text tool for Unity called Super Text Mesh which lets you do wiggly text and a few other things.
Since I’ve been playing with Fungus lately, I decided to see if I could get it to work with Fungus.
In standard Fungus, when you call a Say command, it grabs a SayDialog and passes it the text. The SayDialog then passes that text to the Writer component, which will loop through it, adding it character-by-character to the Text object, to animate the text being written out.
Here I wanted to use the SuperTextMesh object instead of a regular Text. And SuperTextMesh also has its own animation built-in that we want to use. So I extended the Writer class, and overrid some functions to make it just pass the full text to the SuperTextMesh.
SuperTextMesh also has its own sound effects. Fungus has a WriterAudio class to play these. You can associate a sound with a character, and the SayDialog class finds the current character and passes that audio clip to the WriterAudio component. In SuperTextMesh, you can set up a list of voices, which can specify different text colour, animations, and sound effects, so the obvious thing to do is associate a Character with a voice. The way I handled that, is you need to give the Character the same name as the corresponding voice.
The one down-side is that both SuperTextMesh and Fungus have their own tags, so I chose to ignore the Fungus tags to keep things simpler. SuperTextMesh has replacements for things like bold, italics, text color, but there might be some Fungus-specific tags someone would miss.
My addition is currently packaged with the SuperTextMesh on the Unity Asset Store.