Unity 实现滑块排序思路

发布时间 2023-11-20 11:12:28作者: 欢乐豆掠夺者

所有滑块处于一个垂直或水平的布局Cells中,Cells中有一个设置为隐藏的占位透明滑块null

对于每一个滑块cell:

按下时,cell改变为选中状态(美术样式改变),算出偏移(鼠标按下位置与cell中心的距离)

开始拖拽时:cell脱离Cells,将null在层级中的位置设置为cell的位置并显示cell(null.transform.SetSiblingIndex(cell.transform.GetSiblingIndex())),设置射线穿过cell(GetComponent<CanvasGroup>().blocksRaycasts = false)

拖拽中:cell的位置为鼠标位置+偏移,判断鼠标进入的物体是否为其他滑块(PointerEventData.pointerEnter),若是,设置null在层级的位置为该滑块的位置。

拖拽结束:cell回到Cells层级下,隐藏null,设置cell在层级中的位置为null的位置,cell改变为未选中状态,设置射线不穿过cell