文章目录
一、创建循环列表预设
在EUI中为我们提供我了一些常用的UI组,其中就包括了Loop Horizontal Scroll Rect垂直循环列表
这样将会创建出一个循环列表
然后我们可以在列表中的Content中创建循环列表项,列表项目必须以Item开头命名
在列表项中添加了个背景和一个文本框,均以E开头
将其拖动至Bundles > UI > Item 文件夹中,然后将名字填写在列表项中Loop Horizontal scroll Rect脚本中Prefab Name 中的。
然后可以删除
列表中的列表项目并且点击Apply All记录修改
再在Project窗口中找到Bundles > UI > Item找到该列表项打开后为其添加组件Layout Element
并为其打上AB包标签
运行SpawnEUICode进行编译
二、循环列表编码
我们需要在上一节的页面逻辑中RegisterUIEvent方法中添加列表项监听, 注意这里需要使用拉姆达列表式,为了热更新可以生效
然后再来到页面脚本代码中添加一个字典
在页面显示处理中添加内容,指定列表项数量和显示切换,并添加HideWindow方法,在页面关闭时清理列表项。
f在OnLoopListItemRefreshHandle方法中,指定每个Item的内容
再在事件处理类的OnHideWindow方法中调用隐藏页面处理方法
三、红点树概念
在我们日常游戏开发中经常会有按或高亮提示的需求,可能我们会使用判断条件一个个按钮去判断,但更好的方法是使用EUI中的红点组件。
比如我们背包页面获得了新的物品需要提示红点,与其相关的一系列路径上的红点都将会亮起。
下能我们通过例子来学习,在页面中添加下面7个按钮
在Bundles > UI > Common 中添加RedDot预设,预设下需要有名为Count的Text组件
四、编写逻辑
我们打到上节的页面System类,在RegisterUIEvent方法中为四个最底层按钮添加点击事件
再在ShowWindow方法中,利用RedDotHelper中的AddRedDotNode方法添加节点,这是逻辑节点上的操作
用于绑定节点与节点间的层级关系
同样在ShowWindow方法中,我们使用AddRedDotNodeView为节点创建添加红点组件
正式显示所有叶子节点,当打开叶子节点后父节点将会跟随打开
使用RefreshRedDotViewCount方法可以属性红点上的数量
随即可我添加按钮事件中的内容,将数字做出改变然后将数值调用刷新,此时父节点也将跟随刷新
运行后可以点击按钮看到数值方式。