我目前正在 Unity 中开发一款 RPG + 桨组合多人游戏 - Grama Online。
我想,这会是一项简单的 UI 任务 - 展示玩家的手牌 - 结果却变得惊人地复杂。
我的初始目标是经典的桨组合看法:卡片在半圆形分组。鼠标Hover时,一张卡片应该有一点抬起,而邻近的卡片应该向一边移动,使用户能够完全看到选择的卡片。
- 自分组本身很容易:我只是计算了沿一弧的位置,并根据给定的角度分布卡片。
- 通过调整转换以基于索引距离,偏移相邻卡片也很容易。
- 通过 MonoBehavior + EventSystem 来检测 Hover 后,通过鼠标进入事件使 Hover 卡片升高是简单的。
但问题出在 Hover检测和动态重排之间的相互作用产生了一个非常恶心的边界情景。
如果鼠标指针在卡片的边缘附近,布局发生了改变(由于 Hover),卡片可能会从下面的游标中脱离。那样会触发 Hover 退出,重置布局… 将将卡片置于游标下面… 触发 Hover 再次。
结果:闪烁循环。
我最终放弃了分组的风格(暂时),改为换了一排干净的水平排列。 没有重叠,没有邻近的卡片移动。非常稳定,实际上还不错,但我仍然好奇如何让这款风格工作。
很乐意听到你如何approach
评论 (0)