主界面的顶部区域是黄金位置:活动入口、邮件提醒、签到角标都挂在这里。SL:Attach_MainTop 提供了标准化的挂载点——挂件跟随主界面缩放、不遮挡核心操作、开关随时可控,挂件的开发从此有章可循。
---顶部挂件:Attach_MainTop 的标准挂载
function Widget.mount()
local holder = SL:Attach_MainTop()
local btn = GUI:Button_Create(holder, "act_entry", -60, 4)
GUI:Button_setTitleText(btn, "限时活动")
GUI:addOnClickEvent(btn, function()
SL:SendNetMsg(MSGID.OPEN_ACTIVITY, 0, 0, 0, "")
end)
-- 未读角标:有活动时点亮
Widget.badge = GUI:Text_Create(holder, "badge",
-20, 20, 10, "#FF4444", "!")
return holder
end
Attach_MainTop 返回顶部的挂载容器:挂件以负坐标从右侧排布,跟随主界面的缩放与安全区自动适配——不同分辨率的适配问题由挂载点统一解决。挂件的层级在聊天与技能栏之上、弹窗之下,位置的资源不与核心操作冲突。角标的状态由消息驱动:有未参与的活动时点亮感叹号,参与后熄灭,提醒的节奏克制。
---挂件的显隐:用户的可控权
function Widget.toggle(visible)
GUI:setVisible(Widget.holder, visible)
end
---多挂件的错位排布:避免互相覆盖
function Widget.layout()
local x = -60
for _, w in ipairs(Widget.active) do
w.node:SetPosition(x, 4)
x = x - 70
end
end
多个挂件的排布用统一的布局器:每个挂件占 70 像素的槽位,从右向左错位排开——活动、邮件、商城三个挂件互不覆盖。挂件的显隐由用户的设置控制:嫌打扰的玩家一键隐藏,隐藏的状态按账号记忆。挂件的点击热区与挂载的边界对齐,误触率的埋点监控热区设计的合理性。挂件的内容更新走消息驱动:活动状态的变更推送时刷新角标与文案,挂件永远显示当下的状态而不是打开时的旧值。
挂件的渲染层级抽检:弹窗、聊天、技能栏的遮挡关系逐层验证;挂件的点击热区与误触率统计,误触的高发提示位置或大小的调整。
挂件的坐标曾经按固定分辨率写死,宽屏下挂件悬空在界面外,锚点绑定为右上相对定位。挂件的显隐曾经不记忆,每次登录都恢复默认显示,用户设置的持久化补上。角标的点亮条件曾经与活动的实际状态脱节,过期的活动还挂着红点,状态的事件驱动刷新。
挂件的槽位注册制:新挂件的接入申请槽位,避免位置的无序竞争。挂件的显隐设置进账号的偏好存档,多端体验一致。高频活动的挂件支持临时上架,档期结束自动撤下。
全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
实战应用:用在哪里 新服开放预计首日涌三万新玩家,现有环境从未承受过这种规模。压测脚本模拟登录洪峰:按真实用户的操作时序生成…
实战应用:用在哪里 玩家反馈装备强化后战力没变化,开发排查发现属性计算逻辑在版本更新中被误改了。属性快照表每日存档玩家的核心…
实战应用:用在哪里 支付平台的接口响应从 200 毫秒恶化到 15 秒,调用方因等待超时堆积了大量线程,最终导致整个服务进程…
实战应用:用在哪里 支付平台的回调机制在网络抖动时会重复发送同一笔充值通知,如果服务端不做幂等处理就会重复发放元宝。某月因网…
实战应用:用在哪里 行会活动集中在攻城战,日常缺乏轻量社交场景。行会篝火晚会做行会固定社交活动:每周三、周日晚在行会驻地点燃…
实战应用:用在哪里 矿洞深层的随机塌方事件是高收益高风险的野外玩法:塌方前 60 秒全屏预警,玩家撤离至安全区可躲避伤害,停…