将编辑器窗口从 IMGUI 移动到 UI Toolkit。有三个问题让我困扰:
箭头按钮只有上半部分可以点击。一个横跨预览宽度的标签在树中最后出现,导致它覆盖了点击区域。VisualElement 的默认选择模式是 Position,所以任何按钮上的装饰都会吞没点击事件。使用 picking-mode="Ignore" 修复了这个问题,panel.Pick(point) 验证了点击事件而不是点击周围。
IMGUI 每帧重绘,UI Toolkit 不会。我的老 OnGUI 在每次重绘时都重新读取场景,而很多状态都依赖于此。所有这些都需要将其转移到选择回调上,另外使用 root.schedule.Execute(Refresh).Every(250)。
一个方法在每次刷新时都重新分配 UI 状态,而一个对象被选中时,这个对象是不可见的。在新的旋转器中,点击移动到下一个条目,但下一次刷新又将它拉回原位,所以你永远无法移动到第二个条目。使用变化检测而不是每次分配解决了这个问题。
UI 的外观是纯粹的 USS,无图像资产。箭头和标签现在位于预览框架下方,这才是引起点击问题的原因。
评论 (0)