• QQ21031394

    工作时间

    周一至周五:9:30-18:30

    周末及节日:根据情况调休

  • 手机版二维码

    随时手机查素材

  • 扫描二维码

    加入官方QQ群

站长推荐
提百万 联盟管理员
  • 未知地域
  • 内测小天使

    内测期间为论坛做出突出贡献的会员
  • 优秀学员勋章

    通过近期表现由站长颁发
  • 优秀新人勋章

    通过近期表现由站长颁发
  • 高级学员勋章

    通过近期表现由站长颁发
  • 特级学员勋章

    通过近期表现由站长颁发
  • 天工合约会员

    拥有浏览和下载天工精品模型区权限
  • 3644发帖数
  • 1969主题数
  • 0关注数
  • 148粉丝

[UI界面引导] UI编辑器案例:队友信息界面

[复制链接]
提百万 发表于 2020-11-18 01:37:29 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
提莫作坊QQ群:提莫作坊www.tbwlm.cn

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
1. 需求

1. 界面中可以显示队友的信息;
2. 每名队友的信息包括主控单位头像、队友名称、交互信息;
3. 交互信息包括点赞、修改备注名;

2. 拼界面

按照惯例,还是先把这个需求的界面拼好。

2.1 入口按钮界面

队友信息界面并不是一个常驻界面,所以我们先来做一个入口按钮。



入口按钮很简单,就是一个普通的按钮,比较难在如何定位这个按钮的位置。这里我设计的是将按钮显示在小地图右边、网络延迟信息的下方,难点在于我们现在不知道官方的小地图是如何适配的(即不知道小地图的控件大小是多少)。我这里用的方法是:在设计分辨率(1334 * 750)下进入战斗,用截图工具量出我需要定位的点到客户端左下角的距离,并将这个距离写在入口按钮的定位属性中。

这个方法在大多数情况下都是稳的,之后我们也会提供官方的战斗一级界面的具体定位信息,帮助大家通过UI编辑器拓展战斗中的一级界面。

2.2 队友信息主界面

接下来我们来拼队友信息的主界面。

2.2.1 吞噬点击事件的阻挡层`lyr_forbid_touch`

队友信息界面并不是一个全屏界面,因此非界面区域需要有一个阻挡层吞噬点击事件,避免该界面下方的对象响应点击事件。



2.2.2 界面区域`lyr_panel_area`

然后拼一个界面区域的层放在**,之后的节点都放在这个界面区域中。



2.2.3 背景图片`spt_bg`

同样的,给界面来个背景图片,用一个九宫缩放的图片即可。



2.2.4 关闭界面按钮`btn_close`

这个界面打开后还需要可以被关闭,要拼一个关闭界面的按钮。



2.2.5 空状态提示`lb_default_tips`

玩家可能没有队友,所以要拼一个空状态的提示,默认隐藏。



2.2.6 队友信息列表及其列表项

终于到了这次的重点:列表和列表项。

列表UI编辑器中一种相对复杂的控件,类比到触发器的话,列表就是一个数组。数组大家应该比较熟悉,数组是由多个对象按某种顺序排列起来的,我们可以获取整个数组,也可以获取数组中的某一项,改变数组的大小等等。同样的,列表就是有多个列表项所构成的,列表也有大小、其大小也可以被改变,列表中的每一项就是一个列表项。列表项可以很简单(比如一个按钮、一张图片),也可以很复杂(本文示例)。

无论列表还是列表项,在UI编辑器中都是一种控件。

在这个需求中,玩家的队友可能有多个,但是每个队友需要显示的信息又是类似的,因此我们就用到了列表和列表项。

这里,我们拼一个垂直滚动列表,作为队友的信息显示列表。



然后开始列表项的拼接。我们这里的列表项相对复杂,每一个列表项需要显示如下信息:

1. 主控单位头像;
2. 队友名字;
3. 队友备注名;
4. 点赞按钮;
5. 修改备注名按钮;

由于列表项比较复杂,因此列表项根节点的配置非常关键。列表项根节点的配置决定了列表项在列表中的显示大小。对于垂直列表,列表的『尺寸x』是不能编辑的,因为垂直列表的『尺寸x』是由列表项的尺寸x、列数、水平边距、水平间距这4个因素共同决定的;对于水平列表,列表的『尺寸y』是不能编辑的,因为水平列表的『尺寸y』是由列表项的尺寸y、行数、垂直边距、垂直间距这4个因素共同决定的。

由于我们的列表占满了整个界面,所以我们的列表项根节点也需要配置对应的尺寸。



同样的,我们给列表项来个底板,用九宫图片。



然后是主控单位头像部分,由于单位头像的资源没有边框不好看,所以我们采用一个边框底板套单位头像的拼接方式。



接下来的就是两个文本和两个按钮分别对应队友名字、队友备注名、点赞按钮、修改备注名按钮,这些都很简单,就不再赘述了~

2.3 修改队友备注名界面

最后是修改队友备注名的界面,整体拼法挺简单的,思路和上面的类似,这里就不在详述了,这里就展示一下控件树吧~



3. 界面逻辑实现

这个界面整体逻辑挺好实现的,比较复杂的在于列表和列表项的部分,因此本文着重说明列表和列表项在触发器中的使用方法。

3.1 使用触发器设置列表项数

通过触发器动作:控件-设置列表项数,完成列表项数的设置,将列表的大小设置成我们需要的大小。例如本文的示例中,我们需要将列表的大小设置为触发玩家的队友的个数。



3.2 遍历列表

在触发器中遍历列表可以有很多种方法,例如:

- 通过触发器函数:整数-列表大小,获取列表的大小,然后用整数循环1到列表大小,完成列表遍历;
- 通过触发器函数:数组-列表内的所有列表项,获取列表中的所有列表项,得到一个控件的数组,然后遍历这个数组,完成列表遍历;

遍历数组有很多种方法,通常在遍历列表项时,我们可以使用触发器动作:循环-枚举遍历数组,完成控件数组的遍历。因为在遍历列表时,通常都会想要直接获取到这个列表项及其索引值,而这个枚举遍历数组的动作,恰恰可以满足这个需求。



注意,在上面的这个循环中,`teammate_info`这个控件,我们获取到的是每个列表项的根节点。

如果采用整数循环的形式遍历列表,可以通过触发器函数:控件-获取列表项,获取对应索引值的列表项,如下图所示。




注意,在上面的这个函数中,第一个参数必须是一个列表,不能是其他类型的控件,否则属于错误的使用。同样的,这个函数的返回值是列表项的根节点。

3.3 获取列表项的子节点

在遍历列表项的过程中,我们获取到的是列表项的根节点,但我们需要操作的一般都是列表项的子节点,例如本文示例中,我们要修改每个列表项的图标时,需要获取的是每个列表项的`spt_unit_icon`节点,获取到该节点后设置其图片。

此时,我们可以使用触发器函数:控件-列表项指定名字子控件,如下图所示。



使用这个函数时,需要注意以下几点:

1. 第一个参数必须是列表项,或者说第一个参数必须是列表项的根节点,否则属于错误的使用;
2. 这个函数的返回值是某个列表的某一项的某一个子节点;

根据我们的经验,这个函数经常会出现以下这种错误的使用:



这种错误常常出现在这种情况下:在非遍历列表时,想要直接获取某个列表项的子控件的时候。

初学者通常很难发现这个错误,这里介绍一种简单的方法来帮助初学者排查这个错误。如果你在使用这个函数的过程中遇到了触发器报错:『列表项指定名字子控件』中的控件参数不是列表项,那么你可以参照以下3点对着你的函数进行检查:

1. 函数中是否包含列表信息;
2. 函数中是否包含索引值信息;
3. 函数中是否包含子控件名信息;

要获取列表项中的子控件,以上3条信息缺一不可(列表项的子节点是:某个列表的某一项的某一个子节点,3个『某』)。在这个错误的示例中,显然我们缺少了索引值信息,所以找不到对应的子控件。正确的获取方法如下图所示。



3.4 获取列表项在列表中的索引值

在列表的实际实现过程中,我们也会遇到这样的问题:想要直接获取列表项在列表中的索引值。

例如本文示例中,在实现『点赞』按钮的功能时。点赞功能中,点击按钮事件触发时,我们可以获得发起事件的按钮,即『触发控件』,此时我们需要知道触发玩家是给哪个队友点的赞,因此我们需要知道这个触发控件具体是在列表的第几个列表项中,即列表项在列表中的索引值。

此时,我们可以使用触发器函数:整数-列表项在列表中的索引值,如下图所示。



使用这个函数时,需要注意以下几点:

1. 第一个参数必须是列表项,或者说第一个参数必须是列表项的根节点,否则属于错误的使用;
2. 这个函数的返回值是某个列表项的索引值;

在本文示例中,我们的『触发控件』是列表项的一个子控件,因此我们需要使用另一个触发器函数:控件-控件的父控件,获取触发控件所在的列表项。在这个例子中,控件的父控件是列表项的根节点,也就是列表项本身了。

如果你的触发控件在列表项中的嵌套结构比较深,可以多用几次控件的父控件,直到找到你的列表项根节点为止。



[发帖际遇]: 提百万 发帖时在路边捡到了老提莫的蘑菇 3 枚 绿钻,偷偷放进了口袋. 幸运榜 / 衰神榜
免责条款:本站仅提供学习的平台,所有资料均来自于网络,版权归原创者所有!本站不提供任何保证,并不承担任何法律责任,如果对您的版权或者利益造成损害,请提供相应的资质证明,我们将于3个工作日内予以删除。

本网站所收集的部分公开资料来源于互联网,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。本站部分作品是由网友自主投稿和发布、编辑整理上传,对此类作品本站仅提供交流平台,不为其版权负责。如果您发现网站上有侵犯您的知识产权的作品,请与我们取得联系,我们会及时修改或删除。

本网站所提供的信息,只供参考之用。本网站不保证信息的准确性、有效性、及时性和完整性。本网站及其雇员一概毋须以任何方式就任何信息传递或传送的失误、不准确或错误,对用户或任何其他人士负任何直接或间接责任。在法律允许的范围内,本网站在此声明,不承担用户或任何人士就使用或未能使用本网站所提供的信息或任何链接所引致的任何直接、间接、附带、从属、特殊、惩罚性或惩戒性的损害赔偿。

强调下版规的规定,如有恶意灌水从重处罚:
=====发表主题规则=======
1.主题内容请一定要附带预览图片,谢谢;
2.搬运来的东西请尽量不要卖钱!;
3.发帖有任何疑问请联系QQ21031394;
=====发表回复规则=======
1.禁止直接复制标题内容的;
2.禁止纯数字或者纯字母的;
3.禁止乱打一通文不对题;
4.禁止屠版和刷分行为;
第一次扣分处理,第二次扣分+警告,警告三次禁言三天,绝不手软,情况严重的直接封号,请大家珍惜自己的账号!

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

猜你喜欢
天工维度唯一QQ群
786014245

欢迎进群交流,入群答案:编辑器

  • 官方在线客服

    QQ客服:小雪

    点击交谈

    QQ客服:砂糖

    点击交谈

    团队老大:荀公子

    商务合作
  • 上海市静安区共和新路4718号宏慧新汇园6号楼603室

  • 手机扫码查看手机版

    手机查找资源更方便

  • 扫一扫关注官方微信

    加入官方QQ群

Powered by 天天RPG&DZX3.4 ©2020-2021 Comsenz Inc.提百万设计( 沪ICP备18032615号-1 )营业执照