下载 App
穿透层修复
经验一:CSS transform 穿透层修复模式
问题本质
当容器使用 CSS transform: translateX/Y/scale 平移/缩放子树时,即使父容器有 overflow = "hidden",引擎的命中检测可能不裁剪越界区域。如果 transform 后的子树有更高的 zIndex,它会在视觉范围外拦截其他兄弟节点的指针事件。
受影响的场景
地图编辑器(右键平移/滚轮缩放后)
官方
@耳内有灰
4 赞
地图编辑器「墙」全链路增强
经验 1:子编辑器"连续操作" vs "一次性操作"——提交后别清空激活态
现象:放完一段墙,提示"可继续拖拽放置",但再拖没反应。 根因:CommitWall 提交后把 selectedItem=nil、tool="select",导致 IsActive() 返回 false,下次 HandlePointerDown 第一行就 return。提示语与行为矛盾。 模式:连续工具(墙、擦除)提交后只
官方
@耳内有灰
4 赞
弹窗内做"搜索 + 分类 + 网格"
经验 1:弹窗内做"搜索 + 分类 + 网格",用局部刷新保住输入焦点
为什么有效:搜索框是 UI.TextField,如果每次输入都 RebuildUI 重建整棵树,焦点会丢、光标乱跳。正确做法是只把"网格容器"这一棵子树的子节点 ClearChildren + AddChild,搜索框和分类标签不动。模块级变量 objectCategory_ 跨弹窗开关不重置,天然实现"记住上次分类"。
关键
官方
@耳内有灰
地图编辑器仿真 tick 重建抑制
UI 重建频率 = 事件分发的可靠性上限。 只要有一帧 SetRoot 销毁了正在处理 pointer 事件的控件,跨重建边界的 Down/Up 对就会被吞。高频仿真 tick 必须在 UI 边界按页面过滤。
关键代码(scripts/main.lua HandleUpdate)
四步走:先原地处理人员 → 聚合所有仿真 changed → 地图页强制压制 → 只放行显式/登录态变化。
-- ma
官方
@耳内有灰
4 赞

【日常更新】支持2人、3人、4人对战
优化了排行榜显示玩家昵称
@耳内有灰
3 赞
编辑器实体 zIndex 层级
问题
编辑器中墙段被房间面板覆盖不可见。原因:给房间设 zIndex=1 会创建 stacking context,其内部带背景色/TiledImage 的 floorLayer 作为 paint layer 在合成时盖过了同层级 zIndex=2 的墙段——差距太小不够可靠。
解决:底层不设 zIndex,上层用明显间距
错误做法(zIndex 间距太小 + 给底层也设 zIndex):
--
官方
@耳内有灰
1 赞
右键拖拽平移
一、问题本质
不是平移公式写错,而是 UrhoX UI 库指针事件派发的两个不对称陷阱叠加:
陷阱 现象 根因文件
OnPointerMove 不向父冒泡 右键按下 isPanning_=true,但 move 事件永远到不了 mapView urhox-libs/UI/Core/Widget.lua(OnPointerDown/Up 有 parent 冒泡,OnPointerMove 没有)
H
官方
@耳内有灰
4 赞
以鼠标为锚点缩放
核心数学原理
缩放前后,鼠标指向的那个世界坐标点必须保持在同一屏幕位置。
已知:旧缩放 oldZoom、新缩放 newZoom、鼠标锚点屏幕坐标 (ax, ay)、当前偏移 (panX, panY)
步骤1:算出旧缩放下鼠标指向的世界坐标
wx = (ax - panX) / oldZoom
wy = (ay - panY) / oldZoom
步骤2:新缩放后反解新偏移,让 wx/wy
官方
@耳内有灰
1 赞
修复"地图编辑器刷新数据丢失"
问题诊断过程
用户报告:编辑器建好房间 → 保存 → 刷新页面 → 进编辑器 → 数据全没了。
关键线索:用户发现"校园日"模式刷新后能看到房间,但一进编辑器就没了。
这直接指向了编辑器页面自身的初始化逻辑,而非持久化链路。
根因
地图编辑模式.lua 的 EnsureBlankEditorLayout() 设计意图是"首次打开编辑器提供空白画布",用模块级布尔 editorLayoutClear
官方
@耳内有灰
4 赞
围墙空气墙
问题根源
原系统用单点碰撞(Round(nx), Round(ny) 只检测中心1个点),角色精灵 36px(7.2格) 宽,中心停在 x=0.5 时精灵左半完全覆盖 5px 围墙,视觉"穿墙"。
1. AABB 矩形碰撞检测 — scripts/小人/导航.lua
-- 角色碰撞体尺寸(格):脚底占据的地面矩形
-- 半宽 0.5 格(2.5px),半高 0.3 格(1.5px)
local A
官方
@耳内有灰
1 赞



