跟着油管的一个直播视频学习入门的(https://www.youtube.com/watch?v=TTB5y-03SnE&t=7903shttps://www.youtube.com/watch?v=TTB5y-03SnE&t=7903s),但是由于是直播所以有些混乱并且有些许错误。在这里修正一下错误并记下笔记以供以后查阅。

在看完教学后,觉得CommonUI的优势主要是跨平台开发,以及统一样式,自动激活,堆栈等功能。

Demo展示:

录制_2023_02_20_20_49_37_600

主要功能为:

1.鼠标放到以及点击按钮改变样式;

2.Quit Game按钮的Click触发事件;

实现步骤

要使用CommonUI,首先在Edit->Plugins中启用CommonUI插件,然后重启编辑器。

接着在Projectsetting->Engine->General setting中,修改如图蓝色框中内容

下面进行输入数据表的创建以及输入操作的绑定和默认brush的设置

在创建DataTable的时候选择CommonInputActionDataBase模板

点击Add即可添加新的输入数据,数据表的基础知识就不在这里讲了。主要要操作的是设置自己的RowName,DisplayName,以及KeyboardInputTypeInfo(如果要用手柄,Gamepad的也得写)。

然后,创建蓝图类,继承自CommonUIInputData类,覆写原有的确认和回退功能。选择自己创建的数据表和确认回退操作。

创建蓝图类,继承自CommonInputBaseControllerData类,主要用于如果要在界面上显示输入操作,默认的brush和大小。

在InputBrushDataMap中新添你之前添加在数据表里的操作,然后选择相应映射以及brush(图片),和颜色大小等。

之后,在Projectsetting找到CommonUIInputSettings,把InputData换成之前继承自CommonUIInputData类的蓝图。在Windows下(其他系统没试过),添加ControllerData,然后把继承自CommonInputBaseControllerData累的蓝图填入,如果有Gamepad也把相应的填入。输入数据部分大概就这些了。

下面进行统一默认样式的设计

CommonUI能够自定义四种统一默认样式,所谓统一默认样式就是当你创建这个Widget的时候,默认的样式,在需要大量一样样式UI的时候很好用,这里只使用了三种类,分别创建Border,Button,Text的Common(名字)Syle的蓝图类。

以Button为例,可以修改Button的各种样式参数,与普通UI的Button参数基本一致,按照自己的喜好修改就行了。

然后,打开ProjectSetting,找到CommonUIEditor,将创建的三个蓝图类对应填入即可应用。之后再创建CommonBorder,CommonText的时候,默认样式就是你设定的了。要注意,Button并不适用,还需要自己创建新的一个Button类。

创建CommonButtonBase类,然后再右边的Style选择你创建的Buttonstyle,之后要在Widget中添加按钮就添加这个创建的类就行了。

至此,准备工作做完了,开始Demo UI的创建。

时间原因就不一一复现了详细的可以看油管的视频,主要是想体现一下CommonUI的activate和stack的作用。

首先,第一步,也就是油管视频里做错的一步,创建继承CommonUserWidget类的蓝图。然后放入Overlay以及两个CommonActivatableWidgetStack,分别命名为MenuStack和PromptStack。

然后创建两个自定义事件用于将Widget入栈,其中PushPrompt的输入可以不急着加,这是后面才用到的,本文章不涉及。之后,可以在玩家控制器或者什么其他地方创建UI_Base这个Widget,然后再调用Push事件,填入想要Push的Class,就可以了。使用Stack的好处是,当你有多个窗口,比如一个主菜单,然后点击Options会跳到另一个窗口,如果他们都在同一个Stack,比如MenuStack,这样主菜单就会自动消失,显示Option窗口,很方便。这是CommonUI Stack的好处。

之后是CommonActivatableWidget的优点,就是可以自动判断Widget是否激活,然后再激活的时候执行事件,这里激活后执行的是设置focus。

最后讲一下之前设置的按键映射如何使用。

以QuitGame为例,在加入你创建的CommonButton后,在Input栏中找到,TriggeringInputAction,然后选择自己的DataTable,以及你想绑定的操作。然后再Graph中创建按键的Click的回调事件。

这样就好啦!

还是CommonUI初学者,如有错误希望能指出,恳请批评指正。

UE5 CommonUI初学笔记相关推荐

  1. python窗体设计插件_Python 界面生成器 wxFormBuilder 的入门使用(wxPython的界面设计工具的初学笔记)...

    环境,Win10,python3.7.3,wxPython 4.0.4,wxFormBuilder 3.9 1.准备一个窗体. 点击wxformbuilder上方的标签"forms" ...

  2. Lucene.Net 初学笔记 - 索引

    上次随笔写的Lucene.Net 初学笔记 - 介绍,有许多前辈让我知道了Lucene.Net已经不再更新,最后的版本写到2.9.2,不过只更新在svn上.我上次下载是官方正式发布的版本,只有2.0. ...

  3. 0起步的摄影初学笔记

    摄影初学笔记 双镜头反光相机 单镜头反光相机(单反) 光圈 类似瞳孔大小 景深  成像范围 小光圈大景深 大光圈小景深 Av模式:光圈有限模式 自己决定光圈大小 左手动镜头调光圈 右手相机调光圈 光圈 ...

  4. GAMMA初学笔记三

    GAMMA初学笔记三 简单记录下学习过程,以防后面自己忘记,如果有问题,欢迎大家交流留言. 一.语法记录 1.查看影像经纬度范围 SLC_corners 20190424.mli.par 2.拼接哨兵 ...

  5. cocoscreator初学笔记001

    cocoscrestor初学笔记 由于工作原因需要学习cocoscreator基础进行简单的游戏制作,也因为时间原因,之前自学的unity3d也放置了许久,等有空了才能填之前unity3d学习的坑了. ...

  6. Python初学笔记(第一学期学完c后和栗子一起学python)

    Python初学笔记 一.基本数据类型 1.整数 2.浮点数 3.字符串 4.布尔值(即"对"与"错"): 5.空值 二.变量的定义 1.变量名 2.变量的定义 ...

  7. ASP.NET MVC 初学笔记.3 MVC5、EF、RDLC实现报表操作

    在ASP.NET的研究学习中又要用到报表,比如在OA系统里实现凭证.文件等,报表是一个必不可少的东西,但百度了一圈,发现讲得最多的还是水晶报表等第三方报表,好像微软原装的RDLC报表随着MVC的升级渐 ...

  8. CMake初学笔记(一)

    CMake初学笔记(一) CMake是什么 CMake怎么实现跨平台 CMake具体实践过程 CMakeLists.txt编写快速入门 常见函数 例子 CMake是什么 跨平台编译工具,为了实现&qu ...

  9. Altium Designer 初学笔记

    Altium Designer 初学笔记–从零开始发厂打印 新手初学AD,此博客作为初学笔记,供日后复习及分享学习经验使用.如有不足,恳请指正. 软件:Altium Designer20 一.新建工程 ...

最新文章

  1. 什么是embedding?
  2. vue代理配置(vue+django前后端分离项目)
  3. ALSA声卡笔记3--ASoC驱动重要结构体关系图
  4. BI国产化替代进入实质阶段,新产品新方案提高加速度
  5. 角谱传播法matlab模拟,角谱法分析高斯光
  6. jQuery导入代码片段并绑定事件
  7. C++类静态成员与类静态成员函数
  8. StringTokenizer的使用
  9. 在Microsoft Azure上运行Eclipse MicroProfile
  10. uva 10716——Evil Straw Warts Live
  11. 关于C++里面使用set_union,set_intersections、set_merge、set_difference、set_symmetric_difference等函数的使用总结
  12. js in html5,CSS-in-JS 来做的 5 件事情,一般人都不知道!
  13. numpy随机生成01矩阵_Python数据分析Numpy库常用函数详解,提到循环就该想到的库...
  14. 如何自定义已有架构的css样式
  15. Java 使用 POI 对 Excel文件 进行读写操作
  16. SpringBoot启动报jdbc连接池错误
  17. 为什么要减少代码中该死的 if else 嵌套
  18. 更改桌面 计算机 的图标w10,W10电脑系统如何修改桌面快捷方图标
  19. JavaScript的ES3, ES5, ES6实现继承方式
  20. OpenCV学习之路(附加资料分享)

热门文章

  1. 【VC小项目】-13.1动物可以这样叫
  2. 语音识别——基于深度学习的中文语音识别系统框架
  3. 【干货】统计学 × 数据分析 · 上
  4. selenium Grid2环境搭建和基本使用
  5. 172_再谈 Power BI 客户帕累托(ABC)分析度量值写法
  6. jaxa异步查询 通过账号查询名字
  7. webpack学习笔记(六):图片打包处理
  8. 流利说反编译抓包笔记
  9. BOSHIDA 模块电源的分类(三)
  10. HFSS仿真导入到PCB