【Lyra UI】UI 玩法逻辑小结
UI 这块分两个部分:功能版逻辑 + 材质效果
本篇讨论逻辑,即怎么组织UI结构,代码怎么串联事件和逻辑
笔者之前并没有用UE开发过游戏,也算是从零开始,所以并不保证完整性和准确性
大纲
- 进度
- 评价
- 资料链接
- 插件
- 核心机制1
- 核心机制2
进度
- Lyra UI 玩法框架拆完,Panel+HUD过了一遍
- 与官方视频,quabqi视频中提到的技术点都对应上
- 看了必要的代码,非必要不看代码
- 学会使用必要的编辑器功能:蓝图,Widget Reflector,Reference Viewer
接下来干嘛
- 具体的玩法模块,按需拆解
- UI材质学习
评价
这些框架和机制不一定有用,工作流还需要验证
UE 的特点,官方出一个精品Demo,教开发者怎么做游戏,扩展性都考虑到了,看起来可以 scale 到完整游戏的样子
实际做起来,碎片化,代码和编辑器反复横跳,才能拼凑出一条逻辑路径
好处是,研究这一个 Demo 就差不多了,官方逼死同人
资料链接
必读,资料也就这么点,剩下靠谷歌知乎搜索文章
Lyra Starter Game Overview | Tech Talk | State of Unreal 2022 - YouTube
Lyra Walkthrough Q&A | Inside Unreal - YouTube
[UnrealCircle]《Lyra初学者游戏包工程解读》 | quabqi_哔哩哔哩_bilibili
插件
- Engine
- CommonUI
- CommonInput
- CommonUI
- Game Framework
- CommonGame
- UIExtension
- Game Module
- CommonLoadingScreen
- GameSettings
- GameSubtitles
蓝图对工作流的影响
蓝图很好,数据驱动,各种debug工具看起来也很好
问题是和编辑器结合太紧密,因此很脆弱,并且美术-策划-程序工作流耦合
核心机制-PushContentToLayerForPlayer
- UI分了四层
a. 游戏
b. 游戏菜单
c. 菜单
d. 模态 - 层的规则:
a. 同一层里的界面用栈管理,同一时刻只有一个界面,也就是栈顶,栈用于实现通用返回机制
b. 不同层的界面可以同时显示,按层的顺序进行堆叠
具体的案例分析和逻辑跟踪
【Lyra UI】LyraFrontEnd_zoloypzuo的博客-CSDN博客
核心机制-RegisterExtensionAsData
把data和界面分开,同一份data去适配多种界面
思路是这样的:我现在有一份DataX,你有能显示DataX的界面模块吗?有就创建这个界面,我把数据喂给你
性能上的好处,动态按需加载界面
具体的案例分析和逻辑跟踪