在输入字段中编写RTL

时间:2016-09-10 15:43:21

标签: c# unity3d unityscript unity5

我正在尝试在统一输入字段中编写波斯语。波斯语是从左到右的语言,它的字母与阿拉伯语相似。

我找到了library来转换和更正文字。它的工作正常。当我将转换后的文本显示为Debug.Log()时,一切都很完美,但问题是当我要将修正后的文本放入输入字段时,它会被颠倒!我试图颠倒输入字段文本但没有发生任何事情!

这是我的代码

 public InputField empName;

 PersianMaker pm;
 string tempStr = "";

 private void Start()
 {
     pm = new PersianMaker();
 }

 void OnGUI()
 {
     tempStr = "";

     if (!string.IsNullOrEmpty(empName.text))
     {
         tempStr = pm.ToPersian(empName.text);
         tempStr = Regex.Replace(tempStr, @"\s+", " ");
         tempStr = tempStr.Trim();
         //empName.text = ReverseString(empName.text);
         //empName.text = tempStr;
         Debug.Log(tempStr);
     }
 }

 private string ReverseString(string s)
 {
     char[] arr = s.ToCharArray();
     Array.Reverse(arr);
     return new string(arr);
 }

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

您可以使用以下名为UPersian

的开源库

效果很好,我认为这是唯一可用的解决方案。

enter image description here