Unity教程之-Unity3d读取CSV中文本到RichText中换行符不识别的问题

 

项目中要用到符文本做一些信息显示,需要有颜色、字体样式、换行之类,UGUI的 Rich Text就可以用来做这类需求。关于UGUI即unity new ui中Rich Text 的使用:可以参考官方文档(http://docs.unity3d.com/Manual/StyledText.html )

虽然里面没有提到 ” \n ” 这个换行符,但是其实是支持的。

今天在读取CSV中的内容到 Rich Text中显示的时候遇到了麻烦。

上图是 CSV 中的内容,读取之后直接 赋值给 Text。但是运行之后却并没有换行。

原样显示出来了,难道是 Rich Text 不支持 ” \n ” 换行吗?

把CSV中的内容直接在代码中写死,赋值给 Text 。

发现是OK的。

怀疑是CSV的问题。于是断点查看 代码读取出来的内容,果然发现问题:

从 CSV 中读取出来内容后,原来的 ” \n ” 变成了 ” \\n ” 。

个人觉得是Excel中,为了把 ” \n ” 作为 正常的字符处理而又加上了 ” \ ” 来标记后面的是正常的字符内容。

既然知道原因,那解决起来也方便。只要把 ” \\n ” 替换成 ” \n “就可以了。


m_MainNoticeText.text = noticeinfo.Title.Replace("\\n", "\n");

虽然解决的方法很土,但也不失为一个比较好的策略,好了本篇unity3d教程到此结束,下篇我们再会!