UE5【UMG】 - Simple Menu UI v3 学习笔记

这篇具有很好参考价值的文章主要介绍了UE5【UMG】 - Simple Menu UI v3 学习笔记。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

案例地址:https://www.unrealengine.com/marketplace/zh-CN/product/simple-menu-ui
UE5【UMG】 - Simple Menu UI v3 学习笔记,UE5,ui,ue5,学习
这个Demo简单,基本结构都有,可以用来入手学习

1. UE5 入口


1) 先查看 Project-Maps&Modes,找到默认启动Map、GameMode与GameInstance;此外,Input设置也需要看下。

UE5【UMG】 - Simple Menu UI v3 学习笔记,UE5,ui,ue5,学习

2)当UE5程序启动时,默认启动GameInstance、GameMode与默认Map;
  • 接着,Map里的LevelBlueprint程序会默认运行;并且Map的WorldSettings里,绑定的Pawn、HUD、PlayerController…也会被调用运行。
  • 另外,GameMode程序会启动,并运行绑定的Pawn、HUD、PlayerController…(一般选择Map或GameMode一处地方来绑定)。
  • SimpleMenuUIv3的入口有2处,Level_MainMenu的LevelBlueprint,和Blueprint_GameInstance;

GameInstance、GameMode、PlayerController说明:

  • GameInstance是设置全局变量或函数,跨越所有GameMode等,理解为最高层;
  • GameMode是设置某一个Map或某一个游戏模式下的变量或函数,跨域这个模式下所有角色脚本;
  • PlayerController是角色脚本,因为游戏主角非常重要,并基于面向对象思维。类似这些脚本里,往往写有非常多此对象的函数与变量。
  • GameInstance->GameMode->PlayerController形成层层管理的结构。

总结:

  • UE5入口需要查看GameInstance(自定义)、GameMode(自定义)、LevelBlueprint、和找到自定义的Pawn、HUD、PlayerController等;
  • UE5的编程思维是面向对象思维,其他Actor对象一般是等待入口程序调用或其他事件调用。

2. 蓝图开始 LevelBlueprint


UE5【UMG】 - Simple Menu UI v3 学习笔记,UE5,ui,ue5,学习

  • 案例把UMG的操作写在GameInstance里,这里获取GameInstance,并启动LoadSettings与ShowOpeningWidget 2个事件。

3. 全局蓝图 Blueprint_GameInstance - UI Open (UI打开/开始)


1)打开UI几个关键点:判断是否建立Widget、Create Widget创建UI、AddToViewport加入视口、Show Mouse Cursor设置鼠标是否显示、Set Input Mode … 设置输入模式。
2) Show Opening Widget 打开首页面

UE5【UMG】 - Simple Menu UI v3 学习笔记,UE5,ui,ue5,学习

  • 根据Bool值判断是显示Start待机页面还是MainMenu主菜单页面
3)Show Start Screen 打开待机页面

UE5【UMG】 - Simple Menu UI v3 学习笔记,UE5,ui,ue5,学习

  • 如果StartScreen为空,Create Widget并保存,-> Add to Viewport -> Show Mouse Cursor -> 设置bool值;这几步都是UMG的常规操作
  • bool值来改变是进入按Enter的StartScreen待机页,还是直接进入MainMenu主菜单页
4)Show Main Menu 显示主菜单页

UE5【UMG】 - Simple Menu UI v3 学习笔记,UE5,ui,ue5,学习

  • Set Input Mode 有3类,UI Only、Game Only、Game And UI;对应是只能控制UI界面、只能控制游戏界面和2者都能控制。

4. 开始页面 Widget_StartScreen


  • 开始待机页面,按enter进入菜单页
    UE5【UMG】 - Simple Menu UI v3 学习笔记,UE5,ui,ue5,学习
  • Widget Graph
    UE5【UMG】 - Simple Menu UI v3 学习笔记,UE5,ui,ue5,学习
    UE5【UMG】 - Simple Menu UI v3 学习笔记,UE5,ui,ue5,学习
1)Animation :
  • 播放UI动画,Widget里设置了FadeLoop的呼吸灯动画,可以使用动画控制进行调试
    UE5【UMG】 - Simple Menu UI v3 学习笔记,UE5,ui,ue5,学习
  • 需要加入Graph里才能进行播放:
    UE5【UMG】 - Simple Menu UI v3 学习笔记,UE5,ui,ue5,学习
2)Input Action : 按下Enter提供相应

UE5【UMG】 - Simple Menu UI v3 学习笔记,UE5,ui,ue5,学习

  • Listen for Input Action是为UMG准备的输入相应,测试用InputAction Enter也是可以实现,不过此节点提供更多功能,Consume Bool值可以控制是否Callback有效。
    如下响应Enter是有效的
    UE5【UMG】 - Simple Menu UI v3 学习笔记,UE5,ui,ue5,学习
3)父类:BaseWidget_AnimatedCanvas
  • 本案例所有的UI进入和退出都有一个简单动画,所以把功能抽象到这个父类里。包括Animate_Out与Animate_In 2个动画
  • 如何调用:
    UE5【UMG】 - Simple Menu UI v3 学习笔记,UE5,ui,ue5,学习
  • 在此Widget第1次创建的时候,同时调用父类的Construct
    UE5【UMG】 - Simple Menu UI v3 学习笔记,UE5,ui,ue5,学习
  • 如何页面退出:
    UE5【UMG】 - Simple Menu UI v3 学习笔记,UE5,ui,ue5,学习
  • 调用父节点的Remove Widget事件,然后再调用Instance的Show Main Menu的事件,父节点的Remove Widget事件:
    UE5【UMG】 - Simple Menu UI v3 学习笔记,UE5,ui,ue5,学习
  • 先播放Animate Out动画,然后在动画完成事件回调后,Remove from Parent
    Remove from Parent节点:把本widget从它的UI层上的父节点里删除,简单说,就是删除页面。
    不会删除Create Widget的对象,只需要Add to Viewport即可显示出来。
4)Call Remove from Parent:

在Animation Finished里,有一个Event Dispatchers事件调用“Remove from Parent”
UE5【UMG】 - Simple Menu UI v3 学习笔记,UE5,ui,ue5,学习
Call 呼叫,触发绑定事件。但是这里没有发现Bind来相应Call,故而似乎没有效果。若有这样一段程序,即可响应Call。
UE5【UMG】 - Simple Menu UI v3 学习笔记,UE5,ui,ue5,学习

5. 主页面 Widget_MainMenu


  • 主菜单页面
    UE5【UMG】 - Simple Menu UI v3 学习笔记,UE5,ui,ue5,学习
1)Text绑定Game Instance数据
  • 页面Text通过Bind绑定数据,数据来自Game Instance -> GameInfo -> * ,结构体Struct_GameInfo
    UE5【UMG】 - Simple Menu UI v3 学习笔记,UE5,ui,ue5,学习UE5【UMG】 - Simple Menu UI v3 学习笔记,UE5,ui,ue5,学习UE5【UMG】 - Simple Menu UI v3 学习笔记,UE5,ui,ue5,学习
2)WidgeClass_Button 按钮类(预制体)
  • MainMenu里按钮,使用WidgeClass_Button类
    UE5【UMG】 - Simple Menu UI v3 学习笔记,UE5,ui,ue5,学习UE5【UMG】 - Simple Menu UI v3 学习笔记,UE5,ui,ue5,学习

  • 建立按钮文本、2种颜色的变量,在MainMenu暴露,可进行设置
    UE5【UMG】 - Simple Menu UI v3 学习笔记,UE5,ui,ue5,学习
    UE5【UMG】 - Simple Menu UI v3 学习笔记,UE5,ui,ue5,学习

  • 按钮动画, 建立TextHover动画(放大),通过Play Animation Forward与Reverse进行播放(放大缩小),并设置文本颜色

  • 默认设置
    UE5【UMG】 - Simple Menu UI v3 学习笔记,UE5,ui,ue5,学习

  • 动画设置
    UE5【UMG】 - Simple Menu UI v3 学习笔记,UE5,ui,ue5,学习

通过事件调度器,触发Call On Click自定义事件
UE5【UMG】 - Simple Menu UI v3 学习笔记,UE5,ui,ue5,学习

  • 自此,按钮的文本等设置,动画设置与按下事件接口都有了。
3)Call On Click 按钮点击回调
  • 在Widget_MainMenu Graph里,建立Game Instance变量,绑定Event to On Click;
    UE5【UMG】 - Simple Menu UI v3 学习笔记,UE5,ui,ue5,学习
  • 回调绑定,Remove Widget,然后运行Game Instance里的Show Singleplayer Menu事件
    UE5【UMG】 - Simple Menu UI v3 学习笔记,UE5,ui,ue5,学习

总结:UI简单使用逻辑,先到这里,祝福大家开发一切顺利~文章来源地址https://www.toymoban.com/news/detail-735219.html

到了这里,关于UE5【UMG】 - Simple Menu UI v3 学习笔记的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【虚幻引擎UE】UE5 UI三种使用模式

    蓝图创建控件并添加到视口 场景中的显示效果: 1、创建Actor,放入用户控件,并将Actor拖入场景。 这种模式默认无法进行交互,但可播放动画。 1、在二的基础上,添加虚拟控件交互组件到角色身上。 2、在角色蓝图里加上:

    2023年04月10日
    浏览(63)
  • 8. UE5 RPG创建UI(上)

    UI是显示角色的一部分属性玩家可以直接查看的界面,通过直观的形式在屏幕上显示角色的各种信息。如何使用一种可扩展,可维护的形式来制作,这不得不说到耳熟能详的MVC架构。 MVC(Model-View-Controller)是一种常见的软件架构模式,用于组织和设计应用程序。它将应用程序

    2024年01月24日
    浏览(47)
  • 9. UE5 RPG创建UI(下)

    在上一篇文章里,制作了显示血量和蓝量的ui,并且还将ui和获取数据使用的控制器层创建出来并初始化成功。现在只有主用户控件上面被添加了控制器层,还未给每个用户控件赋予控制器层。接下来要实现对属性的广播功能,在属性值变化的时候,能够在蓝图中获取到数值的

    2024年01月24日
    浏览(47)
  • 【UE】UE5 学习笔记

    快捷键 快捷键 描述 F 定位关一卡对象:双击游戏对象名字或选游戏对象名字 鼠标中键 移动视野 alt+鼠标左键移 旋转视野 滑动鼠标滚轮 缩放视野 alt+鼠标右键拖动鼠标 缩放视野 鼠标左键移动鼠标 前后漫游 WASD+鼠标右键 自由漫游 漫游时滑动鼠标滚轮 调节漫游速度 选中要克隆

    2023年04月14日
    浏览(56)
  • UE5.1.1 c++从0开始(14.用C++写UMG类)

    先在这里放一个链接防止第一次看的朋友们不知道我在讲什么:https://www.bilibili.com/video/BV1nU4y1X7iQ/ 这一段的教程不难,唯一新建的C++类是UMG的一个类。这个类用来写绑定在ai身上的血条。 总结一下一共做了什么事情: 给ai写了一个血条ui 重新整理了我们之前写的所有ui,放到

    2024年02月11日
    浏览(43)
  • UE5学习笔记(1)——从源码开始编译安装UE5

    0.1 在windows的话,建议装一个Git bash,同时还要有自己的github账号,注册github账号这里就不再赘述了,安装git bash后,设置自己的github账号。或者在windows装一个WSL。 0.2 把自己的github账号关联Epic官方,必须关联之后才能下载Unreal的源码。关联方式见官方教程 0.3 安装VS 2022,这里

    2024年02月08日
    浏览(55)
  • UE5学习日记——制作多语言版本游戏,同时初步学习UI制作、多语言化、控制器配置、独立进程测试、打包配置和快速批量翻译等

    所有的文本类,无论变量还是控件等都能实现本地化,以此实现不同语言版本。 在这里先将重点注意标注一下: 所有文本类的变量、控件等都可以多语言; 本地化控制板中收集、编译时,别忘了编译这一步; 支持批量复制和粘贴文本字段 测试时必须要独立进程才能起效,

    2024年04月27日
    浏览(119)
  • UE5 C++学习笔记 常用宏的再次理解

    1.随意创建一个类,他都有UCLASS()。GENERATED_BODY()这样的默认的宏。 UCLASS() 告知虚幻引擎生成类的反射数据。类必须派生自UObject. (告诉引擎我是从远古大帝UObject中,继承而来,我们是一家人,只是我进化了其他功能) GENERATED_BODY()表示我们不直接使用父类的构造函数,如果我

    2024年01月20日
    浏览(54)
  • UE5学习笔记(十四)——蓝图基础之第一次做界面

    目录 制作一个简单的UI 步骤1:添加一个界面,并显示在屏幕上 【知识点】在关卡界面调用控件的值 步骤2:蓝图控制文字改变

    2024年02月04日
    浏览(60)
  • UE5 C++学习笔记 FString FName FText相互转换

    1.FString 是UE里的String。最接近std::string, 唯一可以修改的字符串类型。性能更低 TEXT(string) TEXT宏,作用是将字符串转换成Unicode,切记UE中使用字符串输出要使用该宏 2. FName 是UE里特有的类型。它更注重于表示名称不区分大小写,不可以更改。引擎中的资源名称都是FName类型,通

    2024年01月22日
    浏览(64)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包