View on Asset Store (opens in new tab)
Package details
- Latest version
- 1.0
- Last updated
- First released
- Unity version
- 6000.4.11 or later
- Package size
- 23 KB
- Files
- 9
- Favorites
- 1
- Views in the past week
- 4
Price tracking
- Last checked
- Tracked since
- Lowest recorded
- $30.00 on
Keywords
arabic-rt — Arabic shaping, BiDi & un-baking
Correct Arabic text anywhere in Unity. Bake logical Arabic to visual order so it renders on naive UI, and un-bake back to logical for TTS/search. Pure C#, no dependencies, Mono + IL2CPP.
Affiliate link · Purchases support this site
Price history
Last 6 months
USDAsset preview
1 / 2
arabic-rt — Arabic shaping, BiDi & un-baking screenshot 1
About this asset
Arabic in Unity breaks in the usual places: custom mesh text, naive chat overlays, some bitmap-font pipelines, exported logs. Letters come out disconnected and left-to-right because nothing applied shaping (contextual letter forms) and bidi (right-to-left ordering). The long-standing "Arabic Support" assets tackle shaping but are largely unmaintained and have known correctness gaps.
arabic-rt is a small, modern, dependency-free engine that fixes this two ways:
- Fix bakes logical Arabic into visual presentation forms in correct visual order, so it displays correctly on any renderer, even one that does no Arabic processing.
- Unfix un-bakes baked/visual Arabic back to clean logical order, which is what you need for text-to-speech, search indexing, analytics, and storage.
It is pure C# (no native plugins), works on Mono and IL2CPP, and its output is byte-identical to the Python arabic-rt package, so you can bake text on a server and have it read correctly in the Unity client, or vice-versa.
Key features:
- Renders Arabic correctly even where Unity does not, with one call: Arabic.Fix(text).
- Reversible: Arabic.Unfix restores clean logical order for TTS, search, analytics, and logging. Unfix(Fix(x)) == x.
- Game-chat preset (Options.Game) tuned for word-by-word readers.
- Pure C#, zero dependencies. Mono + IL2CPP. Targets netstandard2.0 and 2.1.
- Cross-language parity with the Python arabic-rt and NuGet ArabicRt packages.
- TextMeshPro example plus a one-click demo scene (Tools > arabic-rt > Build Demo Scene).
- Fine control: shaping-only mode, per-word vs full-line bidi, line wrapping, and LTR/number-run preservation.
- Tiny, auditable single source file.
A note on fonts: arabic-rt produces correct text; how it looks is your font's job. For best results, assign a Naskh TextMeshPro font asset such as Noto Naskh Arabic or Amiri (both free, SIL OFL). This asset ships no fonts.
Built by Bandar AlSwyan, author of the open-source arabic-rt engine (Python, .NET, and Unity).
From the publisher's Asset Store listing.
Technical details
- Pure C#, zero dependencies. Works on Mono and IL2CPP; targets netstandard2.0 and 2.1. Compatible with Unity 2020.3 and newer.
- API: Arabic.Fix (logical to baked visual), Arabic.Unfix (baked back to logical), Arabic.Shape (shaping only), plus Arabic.ContainsArabic / Arabic.IsShaped checks.
- Options class with switches (CombineAllah, ReverseWordOrder, WordJoiner, PreventWordSplit, MaxLineChars) and a ready Options.Game preset.
- Output is byte-identical to the Python arabic-rt and NuGet ArabicRt packages.
- One auditable source file plus a TextMeshPro example and an editor demo-scene builder (Tools > arabic-rt > Build Demo Scene).
- Ships no fonts. Assign a Naskh TextMeshPro font asset (e.g. Noto Naskh Arabic or Amiri, both free SIL OFL).
- Source and docs: https://github.com/balswyan/arabic-rt-dotnet | Live demo: https://huggingface.co/spaces/balswyan/arabic-rt
Compatibility
| Unity version | Built-in | URP | HDRP | Custom |
|---|---|---|---|---|
| 6000.4.11f1 | Compatible | Compatible | Compatible | Compatible |
As listed on the Asset Store.