初识Unity,写一些想法帮助后面改进。
点击按钮,没有被隐藏的图标按顺序展开功能;
主要逻辑如下:
ExpandByType有两情况:向左展开和向右展开。
objBtnsTF是用来存放所有图标transfrom的数组
isExpansion:是否展开
sort:是用来记录后面的坐标与初始位置之间有几个图标间距的距离,防止即使图标隐藏了还占了一个空 位。
思想:将所有的图标放在一个List中,当点击展开按钮时检测如果不是隐藏状态就DOMoveX到指定首位置,后面的图标可根据首位在的X坐标加上两图标的间距依次排列下去。如果要收回图标可让他们直接DOMoveX到一指定坐标位置即可。
public void IsExpansion(bool isExpansion)
{
btnExpansion.gameObject.SetActive(!isExpansion);
btnClose.gameObject.SetActive(isExpansion);
int sort = 0;
for (int i=0;i< objBtnsTF.Count;i++)
{
if (isExpansion && type == ExpandByType.ExpandLeft)
{
//向左展开<==
objBtnsTF[i].DOMoveX(firstPoint.position.x - sort * spacingDistans, delayedTime);
}
else if (isExpansion && type == ExpandByType.ExpandRight)
{
//向右展开
objBtnsTF[i].DOMoveX(firstPoint.position.x + sort * spacingDistans, delayedTime);
}
else
{
//收回
objBtnsTF[i].DOMoveX(endPoint.position.x, delayedTime);
}
if (objBtnsTF[i].gameObject.activeInHierarchy)
{
sort++;
}
}
}