Dynamic 3D Text - Runtime-generated TrueType Fonts

LINK TO ASSET WEBSITE: Dynamic 3D Text

IT’S TIME TO STOP USING FLAT TEXT!

Check PROMO VIDEO:

Get Dynamic 3D Text by Strobotnik:

  • Runtime generated text geometry from .ttf or .otf fonts

  • Also font collections are supported (.ttc and .otc)

  • Use fonts with embedding license (e.g. from Google Fonts)

  • Live preview in Editor

  • Prefab support

  • Works so well that it feels like being a native part of Unity :smile:

  • Ligature support

  • standard ligatures

  • discretionary ligatures

  • Languages and writing systems

  • Many common languages are supported (left-to-right or right-to-left)

  • Just select a language supported by the font

  • Optionally writing system can be manually selected

  • Text flow and generation

  • Text block anchoring

  • [upper/middle/lower/baseline] [left/center/right]

  • Row alignment

  • Left/Center/Right (for multiline text)

  • Text size and depth

  • Control chars \n (newline) and \t (tab)

  • Adjustable line height

  • Adjustable tab size

  • Adjustable tracking (additional spacing between characters)

  • Note: no word-wrapping support (yet)

  • Checkboxes to generate front/back/side faces

  • Text mesh beveling

  • Adjustable bevel size, thickness, offset and segment count

  • Adjustable text curve segment count

  • Supports entering Play Mode without Domain Reload

  • Supports all Unity versions starting from Unity 2021.3 LTS

Images

Inspector preview of instanced Prefab with a few changes to highlight prefab instance modifications:

Scene view screenshot of the Dynamic 3D Text object shown in inspector above:

WebGL Demo - Try It Yourself!

9914994--1433742--textentrydemo-screenshot-400.png
Click to try a WebGL Demo

Edits: Added Inspector Image, simple Scene view screenshot and link to a interactive WebGL Demo.

Also already uploaded a new version 0.5.1 with some additional documentation and a few minor fixes!

The Dynamic 3D Text asset has been released now, with version 0.6.0 containing a few fixes!
However, for the time being I’m unable to update the thread title or the first post in this thread. (EDIT: Got that fixed!)

But, here’s a link to Dynamic 3D Text in the asset store :smile:

Incidentally the game Vectory Trail already uses Dynamic 3D Text for its title screen logo. :wink:
Head over to https://strobotnik.com/unity/dynamic3dtext/ to get Dynamic 3D Text now.
There is also a 30% NEW RELEASE DISCOUNT.

Game webpage: https://vectorytrail.com

I am interested in using your 3D text for an AR project I am working on. I have previously had issues with DLL building correctly in XCode. Have you had any issues including your DLLs for iPhone builds? Also how many vertices/polys does a typical letter take up? ie. R & B letters.

Hi @markwjkelly, nice to hear you’re interested in Dynamic 3D Text.
For mobile, the asset has so far got bit more testing in Android than iOS, but there aren’t any known issues. The DLL doesn’t contain native or unsafe code, and it naturally compiles well with IL2CPP native builds.

Amounf of triangles is a tricky question since it is very much dependent on which kind of font you are using, if side and back faces are generated (or only front faces), if bevel is enabled, what amount of bevel and curve segments are being used, and so on. So the possible end result is a wide range.
Here is a screenshot of a simple test with character “B” and Roboto font. From the notes in Hierarchy, you can see that triangle count can vary from 30 to about 17700.

Note that especially with mobile / XR platforms often the amount of draw calls is may be larger limiting factor than actual triangle counts. Dynamic 3D Text creates one mesh per row of text by default (which typically results in one draw call for the row of text instead of one per character).

Thank you for the prompt reply. Just purchased the asset. I will let you know how it goes. :slight_smile:

Thanks again.
Mark

v0.7.0 has been released:

  • Fixed occasional black pixels at edges of fonts when using high curve subdivision
  • Fixed a rare case when farsi/hindu numbers were incorrectly used with other than Arabic RTL writing systems.
  • Minor quality-of-life improvements in editor inspector code.
  • Update geometry internally immediately when that has been scheduled and user code asks for combined bounds.

And next version is already being prepared, with considerable memory and performance optimizations.

Version 0.8.0 release notes:
• BIG performance optimizations, Dynamic 3D Text is 4x as fast as in typical cases. For very large fonts the performance improvement can be even 20x or more.
• Memory optimizations: temp buffers are now reused and Meshes are released explicitly when replacing generated text. These changes reduce greatly pressure for garbage collection if text is updated frequently.
• Minor bug fixes.

Forgot to post version 0.9.0 release notes earlier:
• Added possibility to Detach generated objects as simple mesh objects (without Dynamic 3D Text component).
Detach is available in Inspector right-click context menu for the Dynamic 3D Text component.
• Preparation work a Freeze feature, which will be coming in a future version.
Freeze will allow freezing text into shapes and unlinking the font,
allowing dynamic mesh generation with minimal amount of data.
• Minor editor-side robustness fixes for latest Unity 6.
• Minor optimizations.
• Added hotkeys to editor menu options.