主界面的顶部区域是黄金位置:活动入口、邮件提醒、签到角标都挂在这里。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 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
实战应用:用在哪里 战士的烈火剑法一击熄火后要等八秒冷却,连招断档感强烈。疾风烈火斩在烈火剑法命中后给一次连击窗口:三秒内再…
实战应用:用在哪里 阵营对抗打到中期容易疲软:打赢没有额外好处,输掉也没有代价。阵营声望体系给阵营战装上荣誉刻度:个人与阵营…
实战应用:用在哪里 拿下沙巴克之后呢?城主除了名字挂在城墙上,对城市毫无影响。城主施政玩法让占领变成治理:城主每周获得市政令…
实战应用:用在哪里 主线路光缆被挖断的深夜,全服掉线 20 分钟,玩家以为游戏倒闭。备用线路方案给接入层配第二条出口:主线路…
实战应用:用在哪里 行会官员由帮主任命的老模式弊端明显:任人唯亲、能上不能下。行会选举接口把官员换届做成投票制:每两个月一次…
实战应用:用在哪里 烈火剑法的伤害加成、冷却时间、下一级提升,全靠玩家记忆或去官网查。技能说明悬浮卡片在鼠标悬停技能图标零点…