Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在输入字段中写入RTL_C#_Unity3d_Unityscript_Unity5 - Fatal编程技术网

C# 在输入字段中写入RTL

C# 在输入字段中写入RTL,c#,unity3d,unityscript,unity5,C#,Unity3d,Unityscript,Unity5,我试图在unity输入字段中编写波斯语。波斯语是从右向左的语言,它的字母表类似于阿拉伯语 我找到了一个转换和更正文本的方法。很好用。当我将转换后的文本显示为Debug.Log()时,一切都很完美,但问题是当我将更正后的文本放入输入字段时,它会被反转!我试图反转输入字段文本,但什么也没发生 这是我的密码 public InputField empName; PersianMaker pm; string tempStr = ""; private void Start() {

我试图在unity输入字段中编写波斯语。波斯语是从右向左的语言,它的字母表类似于阿拉伯语

我找到了一个转换和更正文本的方法。很好用。当我将转换后的文本显示为
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);
 }

有什么建议吗?

您可以使用以下名为

它运行良好,我认为这是唯一可用的解决方案


我做了一些研究,但我发现唯一的一件事是,人们问同样的问题,他们也没有任何答案。将uGUI(
InputField
)与OnGUI混合使用?不要那样做。删除OnGUI代码,并用于注册到
输入字段上的提交事件。可能重复