Thank you for sharing! 🙏
MIKDOG
Creator of
Recent community posts
Hey Kai - thanks man. Also been watching the YT videos you have linked on the Asset store page, and I wondered if I might try forego a lot of Canvas UI's stuff and try and get STM to do a lot of the work, since you seem to have 'Vertical Limit' build in to STM and I'd generally want to try and set the text at a predefined point above each character's head using AC's setting for each character, and then when the text goes over a certain horizontal limit, it expands vertically, preferably up. BUT, there's also an AC setting to always keep text inside the screen at all times, so one RectTransform object is requited I believe. Is there a way to automatically generate a kind of semi-transparent coloured background to the text, to simulate a text box? Then I maybe wouldn't need all the other nesting objects.
Yes, only seems to happen when recording with Unity's Recorder. At 60fps it's almost imperceptible but still noticeable.
Anyways, instead of me asking all these questions, I think what'd be best (like you suggest) is if I ZIP my project and send it to you to have a squizz at if that's ok. Will email you a GDrive link shortly.
Also some (maybe) useful info - the double vertical group issue position recording glitch only happens when I have the Super Text Mesh component enabled. If I disable it and enable Text Mesh Pro on the object, the double nesting doesn't seem to be an issue with recording. Hopefully helps with troubleshooting.
The script you sent - what object should I put that on? I didn't seem to get fields in the inspector when I attached it to eg the STM object, I'm not a code expert by any means, but it looks like I should have got some public fields to drag objects into? Even a more basic question, but should it be a CSharp script or a Mono?
Hey, thanks so much for these suggestions.
After a lot of fiddling, it seems like the conflict is maybe the nesting, or rather having 2 'Vertical Layout Group' components on 2 different nested objects. If I disable one of the Vertical Layout Groups, I don't get the issue. I tried replacing one with a Horizontal Layout Group, but no luck.
I did try a Layout Element - it gets rid of the recording position glitch, but I couldn't seem to get the wrapping of the text right (the text ran off the screen), or the background box just didn't shrink to conform to the text - this kind of double nested setup I have seems to be the only way I can find thus far to get the text to wrap correctly to a max shape.
I also tried your script, and just couldn't figure out how to get it to work with the Adventure Creator Subtitles menu I'm afraid - maybe the ACWiki script was clashing with it, not quite sure. If you have more suggestions for how to set that up correctly, I'd love to please try! 🙏
Hi Kai - thanks, flip, sorry to interrupt your long weekend. I struggled with the script, some error about a layout element was not defined if I remember correctly. Would love to get your input on Tuesday please, thank you.
I've also asked Chris, creator of Adventure Creator, if he has any further ideas and passed on the info you've provided. I'd also love to get this working well! Been a challenge thus far but would be great if it worked well, really hoping so. 🙏
I have a Content Size Fitter on both the 'Panel_TextBG' and the 'TextBoxContainer'. I think TextBoxContainer constrains the max horizontal width of the subtitles and pushes text down vertically when it reaches the edge of it, and then the child one Panel_TextBG trims the background box to whatever text is passed into it:

D'oh, seems I maybe spoke too soon! In the editor, when I play the game, it seems fine, but as soon as I try and record with Unity's recorder, I can see the quick movement before the text gets moved into place. I've tried your other suggestions, and wondered if I could please try that script you suggested that helps with the ContentSizeFitter?
Re your other question, on the object that has Super Text Mesh on for subtitles, I also have a 'Text Mesh Pro' object on it too that's hidden as it's the only way I can get Adventure Creator's menu to accept the 'linked text' object, as it's looking for a TMP component.
Example of what's happening with recorder:
Not sure if you'd like to update the AC integration script on your side, but for what it's worth this is the adapted script with your suggestion and also this line included, which respects the character's subtitle colour (which I think you suggested adding from some time ago!)
supertext.color = speech.GetColour ();
Wow, thanks so much! I tried your first suggestion with replacing "supertext.Text" with "supertext._text" and it seems to have done the trick!
Legend! Thank you kindly 🙏🙏❤️
Incidentally, yes, my SubtitlesUI does have quite a few components, the Panel AND the TextBoxContainer have a vertical layout group and a content size fitter, I fiddled until I could get the coloured backing background to fit whatever text was being displayed and this seemed to work.

Hi - wonder if you could please advise? I'm using this script from the AC Wiki. It mostly works but the issue I'm finding is that the text appears where it shouldn't before it's momentarily teleported to the correct place above a player's head. If I just use Text Mesh pro, this issue doesn't occur, so I suspect it's either something with Super Text Mesh, or the script.
Vid to demonstrate:
Script:
using UnityEngine;
using System.Collections;
public class SuperTextFromACSpeech : MonoBehaviour {
/*
This script is to make Super Text Mesh work with Adventure Creator.
Essentially, it lets AC handle all non-text elements (sound effects, user input),
while letting STM handle all text-related issues (scrolling speed, animations, colors, etc.)
Simply put this script on a Super Text ui item in your subtitlesUI adventure creator menu,
then hide the text item that AC thinks it's referencing (put it offscreen, make it invisible, whatever!).
AC will play dialogue sounds and handle input as normal,
but the player will only see the Super Text.
Script by @johndaguerra. No credit needed, but I'm cool and it'd make me happy if you followed me on twitter!
*/
SuperTextMesh supertext;
AC.Speech speech;
AC.Dialog dialog;
void Start () {
supertext = GetComponent<SuperTextMesh>();
dialog = FindObjectOfType<AC.Dialog>();
}
void Update () {
//If there is dialogue currently being spoken...
if (dialog.GetLatestSpeech() != null)
{
//And you haven't already sampled it...
if (speech != dialog.GetLatestSpeech())
{
//Then set the supertext text to print the dialogue
speech = dialog.GetLatestSpeech();
supertext.color = speech.GetColour ();
supertext.Text = speech.log.fullText;
//This tells the text to read at regular speeds, in case it was told to speed read
supertext.RegularRead();
}
}
if (supertext.reading == true)
{
if (Input.GetMouseButtonDown(0) || Input.GetKeyDown("space"))
{
//If the player clicks or presses space while reading, then speed read
supertext.SpeedRead();
}
}
}
}
Wonder if any tips to fix it, please? I've tried changing the Canvas Fade to 0, and putting this script higher up in the execution order (and a bunch of other fiddling) but that still doesn't sort it.
I've asked the creator of the script for advice but he says it's so old he wouldn't know whether it's a script issue or an update to Super Text Mesh that'd be causing the glitch.
Thanks so much, Mandy! 🙏😄 I love the idea of a pacifist path and would like to add it if I do more on the game - keeping a running list of tweaks and additions. Thanks for the props re sound design. For what it’s worth I made it so you can’t squash the pixel peeps lol, they kind of bounce away from Kaiju’s big stomping feet. 😅 Thank you for the kind words and for taking the time to play through it 🙌
Hi John! Thanks so much for making this script! I've been trying to find a way to contact you, lol - I'm using your script, but noticing that the Super Text Mesh subtitles appear briefly in the wrong place (like in the middle of the screen) before they've quickly moved or teleported to the correct position above a player's head. Been trying to fix it myself but it's a little beyond me - tried moving the script up in the rendering order as it seems like the subtitles line is created before it's moved, etc.




