Type Arabic into a TextMeshPro text the way it is written. HeshamRTL joins the letters, lays the line out right to left and wraps it correctly, while your game runs.
Built from text that shipped broken. The demo includes Arabic from two commercial games released with official Arabic support, where every word came out backwards or as unreadable letters, next to the same text drawn by HeshamRTL. Their text was stored correctly; it broke while the game drew it.
Everything that breaks with pre-converted strings keeps working
No setup per text Add one Arabic Text Settings component to your first scene and every TextMeshPro text that shows Arabic is handled before its first frame. Or add the component to the texts you choose; it previews in the editor without Play mode.
Already using RTLTMPro? Keep your project. HeshamRTL draws every RTLTextMeshPro text from the Arabic you typed and ignores RTLTMPro's conversion: Arabic yeh and Latin digits stay as typed, brackets your translators typed backwards are put right, your alignment is kept. An editor report lists every RTLTMPro text and the ones with reversed brackets.
Correct Arabic
Light Text that does not change costs nothing; shaping a text allocates only its result string. 200 UI texts changed every frame: English 2.8 ms, Arabic 3.8 ms.
Also
Not supported