C#脚本在海外德语、法语环境中逻辑不对的问题

  我们游戏换用Unity3D2020上线后,收到很多德语、法语玩家的反馈,类似于以下这种:

C#脚本在海外德语、法语环境中逻辑不对的问题_第1张图片

 C#脚本在海外德语、法语环境中逻辑不对的问题_第2张图片

  根据玩家的反馈,我们将手机调整为法语环境,结果在游戏 在新手引导阶段卡死,经过检测发现问题出现在float.parse(),解析"3.5"这样的数据时候出错。

  进一步研究发现,U3D新版本中使用了C#的新特性,自适应每种语言的浮点数标准化。打个很简单的例子:

5.24.ToString();

 这个很基础的字符串转化函数,在英语和中文环境下出来的结果是:5.24.

 但是!德语中出现的结果是:5,24。很明显可以看出.变成了,

 因此我们的解决办法是在启动函数里加上这么一句话,让游戏主线程强制转化为英语环境:

 System.Globalization.CultureInfo.DefaultThreadCurrentCulture = new System.Globalization.CultureInfo("en-US");

你可能感兴趣的:(U3D,C#学习笔记,言职,c#,开发语言,后端)