hk1ll3r.rtltmpro
v3.3.2
Published
This plugin adds Right-to-left language support to TextMeshPro Unity package. You need to have TextMeshPro plugin in your project.
Downloads
5
Maintainers
Readme
RTL Text Mesh Pro
This plugin adds Right-to-left language support to "Text Mesh Pro" Unity plugin.
You need to have TextMeshPro
plugin in your project. You can install TMPro via Package Manager
.
Attention
Looking for maintainers. Send email to [email protected]
Features
Realtime RTL Text
You don't need to convert, copy and paste texts. Start writing and texts will be converted right away.
Rich Text
All Text Mesh Pro
's tags are available in RTL Text Mesh Pro
RTL InputField (See known issues)
Realtime InputField is supported.
RTL Dropdown (See known issues)
Multiline
Yes, This plugin has no problem with multiline RTL texts.
AutoSize
Auto Font Size is fully supported.
English, Farsi and Arabic digits are supported
Arabic Tashkeel
Arabic tashkeel are supported.
Zero-Width No-Joiner character support
You can insert Zero-Width No-Joiner character with Ctrl+Shift+2 hotkey.
How To Use
- You need to have
TextMeshPro
plugin in your project. You can install TMPro viaPackage Manager
. DO NOT Install Text Mesh Pro from Asset Store. - Go to release page and download latest unitypackage file (or copy
RTLTMPro
folder from source to your project.) - Open one of the range files in
Assets/RTLTMPro/Ranges/
folder using your favorite text editor.- RTL Letters are in
LetterRanges.txt
file - English, Arabic and Farsi numbers are in
NumberRanges.txt
file - Arabic tashil are in
TashkilRanges.txt
file.
- RTL Letters are in
- Make sure you have copied ranges that you want to use
- Open
Window/TextMeshPro/Font Asset Creator
window. - Assign your font in
Font Source
field (Your font must support RTL characters) - Set
Character Set
toUnicode Range
- Paste copied ranges inside
Character Sequence (Hex)
- Press
Generate Font Atlas
button and wait for it to generate the atlas file. - Press
Save TextMeshPro Font Asset
and save the asset. - Use
GameObject/UI/* - RTLTMP
menu to create RTL UI elements. (Alternatively you can replaceText Mesh Pro UGUI
components withRTL Text Mesh Pro
) - Assign your font asset
Font Asset
property inRTL Text Mesh Pro
component - Enter text in
RTL TEXT INPUT BOX
secion.
Usage Description
Farsi
When checked, English numbers will be converted to Farsi numbers. When unchecked, English numbers will be converted to Arabic numbers.
Preserve Numbers
When checked numbers will not be converted.
Force Fix
RTL Text Mesh Pro does not fix texts that start with English characters.
Checking this checkbox forces RTL TextMeshPro to fix the text even when it starts with English character.
Multiline English texts will have problem on components that have ForceFix
checked.
Fix Tags
When checked, RTL Text Mesh Pro will try to fix rich text tags.
Known Issues
- InputField, Dropdown (and anything that was designed to work with TextMeshProUGUI script) will not work unless you do these steps below.
Why it doesn't work? We need to override thetext
property ofTextMeshProUGUI
. But thetext
property is not definedvirtual
. You need to manually make the property virtual.- Open
TMP_Text.cs
from TextMeshPro source code - add virtual keyword to text property.
- Open
RTLTextMeshPro.cs
and uncomment the top line where it says//#define RTL_OVERRIDE
- Now you can use InputFields and Dropdowns.
- Open
Contribution
All contributions are welcomed. Just make sure you follow the project's code style.
Contact: [email protected]