Text wrapping behaviour, CRPG style

Announcements, support questions, and discussion for the Dialogue System.
Post Reply
apocrypha1
Posts: 6
Joined: Mon Aug 14, 2023 6:53 pm

Text wrapping behaviour, CRPG style

Post by apocrypha1 »

Hi. I'm looking to achieve a behavior with my dialogue UI reminiscent of old CRPGs like Planescape Torment. Disco Elysium also uses a very similar style.

This image covers the style I'm looking for pretty well:

Screenshot 2023-08-23 072153.png
Screenshot 2023-08-23 072153.png (995.29 KiB) Viewed 210 times

1. Basically, when the text of a subtitle or response wraps, I want the next line to appear slightly in front of the previous one, something equivalent to adding a couple tab keys. For the response options I would also love to use the Dialogue System's Autonumbering feature if possible, to speed up work.

2. Also, related, is there a way to apply a different color to the autonumbering than the regular text? Can it be done in the "Format" field of the Standart UI Menu Panel? And same question for speaker names, I suppose.

I've been bashing my head against this for a while now and I can't seem to figure out any way of doing it. I'm using TextMeshPro and have tried messing around with the Wrapping/Overflow options to no avail. Is there a simple way of implementing something like this or would it involve a lot of code?

I also apologize if this is more related to Unity's UI System than this plugin, or if I've missed a very obvious instruction somewhere - I'm inexperienced enough to not be completely sure.

Thanks a ton
User avatar
Tony Li
Posts: 22116
Joined: Thu Jul 18, 2013 1:27 pm

Re: Text wrapping behaviour, CRPG style

Post by Tony Li »

Hi,
apocrypha1 wrote: Wed Aug 23, 2023 12:29 am1. Basically, when the text of a subtitle or response wraps, I want the next line to appear slightly in front of the previous one, something equivalent to adding a couple tab keys. For the response options I would also love to use the Dialogue System's Autonumbering feature if possible, to speed up work.
Normally I'd point you to How To: Prepend actor name and indent in TextMesh Pro or How To: Indent Text but Unity keeps breaking the <indent> tag. (If I recall correctly, I think Disco Elysium used NGUI, so we didn't have this issue.) You can apply the fix described in this post. See also: How can I modify built-in packages?

apocrypha1 wrote: Wed Aug 23, 2023 12:29 am2. Also, related, is there a way to apply a different color to the autonumbering than the regular text? Can it be done in the "Format" field of the Standart UI Menu Panel? And same question for speaker names, I suppose.
Yes. For the response menu, tick the StandardUIMenuPanel's Autonumber > Enabled, and set the Format to something like:

Code: Select all

<color=blue>{0}.</color><indent=5%><color=red>{1}</color></indent>
The format above will color the number blue and then indent the response text and color it red. You can use web colors (#rrggbb) in the <color> tag.
Post Reply