最近发现中国风游戏中,经常会遇到旁白文字竖着显示的需求。

于是我首先找了找控件蓝图中的text有没有相关类似横竖文本框的选项,然而并无所获。

突然间灵机一动!

竖着显示不就是每个字一换行嘛!

说干就干,于是我在gamemode中添加了个getverticaltext的函数,打算用于全局的字符串横竖转换。

那么问题来了。。ue4的c++中怎么表示FString类的换行符呢?

第一反应当然是"/n",结果就是游戏中真的是显示了/n。。。

查阅了一下unreal社区,普遍都说不知道怎么表示换行符,不过可以在蓝图中shift+enter编辑

我便退而求其次,又在gamemode中添加了个changelinesymbol的FString类变量,作为换行符的全局变量,在蓝图的beginplay中把它的值设置成了换行符:

虽然有点绕,但的确管用啊。

(不过后来我又在群里问了下一位热心小哥告诉了我真相——"\r\n"就行了……)

接下来的横竖转换就比较简单了:

FString AsanshaoyeswordGameMode::getverticaltext(FString x)
{
    if (x == "") return "";
    FString ans = "";
    ; i < x.Len()-; i++) {
        ans.AppendChar(x[i]);
        ans.Append(changelinesymbol);
    }
    ans.AppendChar( x[x.Len()-]);
    return ans;
}

然而又有新的问题来了,这样弄的竖文本并不能竖直居中啊。。。

我只好通过计算控件应该在的位置,来设置使其居中了。

所幸貌似相同字体和字号的文本高度是一样的高的,为了简便起见我们先假定相同字体高度和字号成正比。

于是我就在控件蓝图定义了一个叫singleword_height_persize的float,基于我们的假设,singleword_height_persize*fontsize==一个字的高度

我的旁白文本(textblock_pangbai)锚点位于屏幕左上角,所以要得到正确位置需要从y坐标为0开始先向下平移半个screenheight,然后向上平移半个所有文本占的高度

screenheight我通过getviewportsize的y表示,所有文本的高度自然就是pangbai_vertical.Len()*singleword_height_persize*fontsize了

具体蓝图如下:

singleword_height_persize经过尝试,方正舒体1太小,1.233差不多刚好

要注意控件位置要以独立窗口运行为准,直接在视口运行比较邪门的

效果如下

ue4竖排文本显示的更多相关文章

  1. css截断长文本显示

    实现 截断长文本显示处理,以前是通过后台的截取,但这种方法容易丢失数据,不利于SEO. 而通过前端css的截断,则灵活多变,可统一运用与整个网站. 这项技术主要运用了text-overflow属性,这 ...

  2. CSS 单行溢出文本显示省略号...的方法(兼容IE FF)(转)

    http://www.52css.com/article.asp?id=602 ===================================================     html ...

  3. 新公司入职第一天遇到的 关于 CSS 单行溢出文本显示省略号...的问题

    上班第一天 前端岗位,因为公司这个项目是标准开发 所以没法用框架在打架页面,好吧 我手写 各种div 各种css样式 好不忧伤,好吧 不废话了 进入正题. 想在导航栏中的 客户信息 功能点 实现溢出用 ...

  4. HTML超出文本显示省略号...[text-overflow]

    需要对div或者span同时应用Css: text-overflow:ellipsis; white-space:nowrap; overflow:hidden; 即可实现所想要得到的溢出文本显示省略 ...

  5. Android开发之多线程下载、断点续传、进度条和文本显示

    代码实现了在Android环境下的多线程下载.断点续传.进度条显示和文本显示百分数: import java.io.BufferedReader; import java.io.File; impor ...

  6. 使用text-overflow:ellipsis对溢出文本显示省略号有两个好处

    使用text-overflow:ellipsis对溢出文本显示省略号有两个好处,一是不用通过程序限定字数:二是有利于SEO.需要使用对对溢出文本显示省略号的通常是文章标题列表,这样处理对搜索引擎更友好 ...

  7. css 溢出文本显示省略号

    这个标题其实已经是一个老生常谈的问题了.很多时候,比如网站最基本的文章列表,标题会很长,而显示列表的区域宽度却没有这么宽,这时候最正常的做法就是 让超出宽度的部分文字用省略号(…)来表示.通常做法是网 ...

  8. EmWin 文本显示函数

    函数模型----------------------------------- 1:void GUI_DispChar(U16 c):  在当前窗口的当前文本位置处,使用当前字体显示单个字符.  c ...

  9. text-overflow:ellipsis ,溢出文本显示省略号

    text-overflow:ellipsis 对溢出文本显示省略号有两个好处, 一是不用通过程序限定字数 二是有利于SEO. 需要使用对对溢出文本显示省略号的通常是文章标题列表,这样处理对搜索引擎更友 ...

随机推荐

  1. html基础知识2(有序无序列表,表格)2017-03-08

    摘要:php 基础知识2   重点:有序无序列表:<a>标签:<table>标签  内容容器 1.段落标签 <p></p> 注: 执行前后换行,并空一行 ...

  2. JS一周游~(基础、运算符、条件语句)

    一.基础篇 JavaScript 基于浏览器(客户端).基于(面向)对象{没有继承}.事件驱动(要有对象).脚本语言(灵活多变) 1.作用 表单的验证,减轻服务端的压力 添加页面动画效果 动态更改页面 ...

  3. 一份关于组建.NET Core开源团队的倡议书

    组建这个.NET Core开源团队,旨在为社区出一份力,对自己能力也是一个提升,是一个即利于他人,也利于自己的想法和行动.如果你有很多想法,如果你需要认识更多志同道合的朋友,如果你想展示自己的才华,如 ...

  4. java配置文件的读写

    最近在做一个爬虫项目时,用到了读写配置文件的方法,记录下来以后可能用的到. Properties pro = new Properties(); boolean IsFirst = true; //从 ...

  5. Spring Data JPA 简单查询--接口方法

    一.接口方法整理速查 下表针对于简单查询,即JpaRepository接口(继承了CrudRepository接口.PagingAndSortingRepository接口)中的可访问方法进行整理.( ...

  6. Office 365开发概述及生态环境介绍(一)

    原文于2017年3月13日首发于LinkedIn,请参考这个链接 离上一篇文章,很快又过去了两星期的时间.今天抓紧晚上的时间,开始了Office 365开发系列文章的第一篇,我会帮助大家回顾一下过去O ...

  7. Redhat

    vm1 port:192.168.210.102 user:root;pwd:123456 user:openflowpwd:openflowKkm09!q esx4.1 server 安装一.修改I ...

  8. (27)IO流小结

    字节流 输入字节流: ---------| InputStream 所有输入字节流的基类. 抽象类 ------------| FileInputStream 读取文件的输入字节流 --------- ...

  9. SQL AlawaysOn 之二:添加组织和域用户

    1.在管理工具打开Active Directory 用户和计算机 2.在域控制器名称下面右键  选择 新建--组织单位, 3.输入组织名定,点确定 4.在组织右键--新建--用户 5.输入用户信息,点 ...

  10. select count(*)优化 快速得到总记录数

    1.select count(*) from table_name 比select count(主键列) from table_name和select count(1) from table_name ...