TypeFlow Pro | Animated RTL & Arabic Text for TextMeshPro


Correct Arabic, Hebrew and RTL text on the TextMeshPro labels you already have. One component adds shaping, UAX #9 bidi and an RTL-aware typewriter. Pure C#, no native plugins, ships to WebGL.


by Szekeres


Price History +

TextMeshPro draws Arabic as isolated letters in the wrong order. The usual ways around that are a native shaping plugin you cannot ship to WebGL, or a string converter that falls apart the moment you want the text to animate.


Online Demo Showcase | Online Documentation


TypeFlow Pro works differently. Drop the TypeFlow Text component onto a TextMeshPro label you already have and it hooks Unity's official text-preprocessing path. Arabic letters join into their contextual forms, the UAX #9 bidirectional algorithm puts mixed Arabic, English and numeric runs into the correct visual order, punctuation mirrors where the standard says it should, and alignment flips to match the paragraph direction. Your materials, shaders, canvases and prefabs are untouched. Turn the component off and you are back to plain TextMeshPro, with nothing to migrate or undo.

Add TypeFlow Animator and that same text can type out, wave, shake, pause on punctuation, wait for a button press and fire dialogue events. The reveal follows logical source order, so Arabic types the way a reader expects instead of appearing backwards — which is what generic per-character animators do to RTL text.


Two tiers ship together


Tier 1 — the TextMeshPro layer. This is the everyday path and the reason most people will buy the package. Arabic, Hebrew, Persian and Urdu shaping; full bidirectional ordering; contextual digit shaping; alignment auto-flip; the typewriter and 20 text behaviors; clickable links; Markdown-to-TMP conversion. It runs inside the TMP workflow you already know.


Tier 2 — Kiln. A standalone OpenType renderer written in C#, for the cases a pre-baked TMP atlas cannot express. It parses the font itself: TrueType and CFF outlines, GSUB substitution, GPOS positioning, variable-font axes, COLR/CPAL colour emoji, SDF and MSDF rasterisation, outlines, shadows and gradients. Point it at a .ttf or .otf you have the rights to and it renders from that font's own tables. You can ignore Tier 2 entirely and still get full value from Tier 1.


Evidence you can check yourself

Text layout is the kind of problem where "it looks right in my test string" means very little, so the package ships its proof rather than asserting quality.


448 automated tests (421 edit-mode, 27 play-mode) are included in the package and run in Unity's Test Runner on your machine.


Conformance is measured against the official Unicode test suites, reported per suite rather than as a single flattering average:

Grapheme break — 100%

Word break — 100%

Sentence break — 100%

Bidi character — 99.97%

Line break — 99.73%

Those numbers are floored by regression tests, so they cannot quietly get worse in a later version.


No native binaries. The whole thing is managed C#, verified by building the demo to WebGL (IL2CPP to WebAssembly) and to a Windows IL2CPP standalone player, both with zero errors. That is what makes it work on WebGL at all, where native shaping plugins cannot go.


What you can build with it

Arabic and Hebrew game UI. Persian and Urdu dialogue boxes. Mixed English and RTL localisation strings that stay correct when the two are on the same line. Visual-novel and RPG typewriter dialogue. Animated menu labels. Clickable rich text. Damage numbers and floating combat text. World-space 3D signage. Multi-language interfaces where Latin, Arabic, Hebrew, CJK, Thai, Devanagari and emoji share one pipeline.


Known limitations

Stated up front, because finding them after purchase is worse.

Script coverage. Latin, Arabic, Hebrew, CJK, Devanagari (including conjuncts) and Thai are render-validated. Myanmar and Khmer cluster reordering is not modelled and those scripts fall back rather than shaping correctly.

Per-span effect meshes. Gradient, outline and shadow are parsed and supported by the engine, but mixing several of those styles within a single string is not yet wired into the Tier-2 mesh renderer.

The last fraction of a percent. Line break sits at 99.73% and bidi at 99.97%. The remaining cases are rare cluster and BD13 situations.

Fonts. One Arabic face (Amiri, SIL OFL) is bundled. The engine ships no CJK, Indic or emoji fonts — point it at fonts you have the rights to. Colour emoji specifically need a COLR/CPAL v0 font; bitmap emoji formats such as CBDT and sbix are not supported.


Requirements

Unity 6000.0 or newer with TextMeshPro. No external services, API keys, HarfBuzz, FreeType or platform plugins. Tier 1 needs TextMeshPro; Tier 2 (Kiln) renders on its own and does not.

Documentation is a single searchable HTML guide inside the package, covering both tiers, every component, the API and troubleshooting.


Support

szekipapa77@gmail.com



Third-party content and licensing



One third-party component ships in this package: the Amiri Arabic typeface, bundled so the demo scenes and the interactive showcase render Arabic the moment you import.



Asset uses Amiri under SIL Open Font License 1.1; see Third-Party Notices.txt file in package for details.