unity利用Scroll View实现类似下拉框功能
unity下拉框
下载链接:https://download.csdn.net/download/qq_41439912/12408846

效果如下
unity Scroll View实现类似下拉框功能
注意事项:下图红色圈的的物体锚点居 上中
unity Scroll View实现类似下拉框功能
代码如下
void OnClickOpenList()
{
isOpen = !isOpen;
if (isOpen)
{
canvasGroup.alpha = 1;
RefreshScrollHeight();
transform.GetComponent().sizeDelta = new Vector2(transform.GetComponent().rect.width, transform.GetComponent().rect.height + mynull.rect.height);
Viewport.sizeDelta = new Vector2(Viewport.rect.width, 1050);//Viewport的高度、根据需要设置
//Viewport.sizeDelta = new Vector2(Viewport.rect.width, Screen.height / (float)2.11);//Viewport的高度
scrollView.sizeDelta = new Vector2(scrollView.GetComponent().rect.width, CourseHeight);
}
else
{
canvasGroup.alpha = 0;
CourseHeight = 0;
scrollView.sizeDelta = new Vector2(scrollView.GetComponent().rect.width, scrollView.GetComponent().rect.height);
transform.GetComponent().sizeDelta = new Vector2(transform.GetComponent().rect.width, Initheight);
Viewport.sizeDelta = new Vector2(Viewport.rect.width, 0);//Viewport的高度
}
}
///
///刷新下拉框的高度
///
void RefreshScrollHeight()
{
if (Content.GetComponentsInChildren(true).Length >= 1)
{
for (int i = 0; i < Content.childCount; i++)
{
if (Content.GetChild(i).gameObject.activeSelf)
CourseHeight += Content.GetChild(i).GetComponent().rect.height;
}
mynull.sizeDelta = new Vector2(0, CourseHeight);
Content.GetComponent().sizeDelta = new Vector2(620, CourseHeight);
}
}

相关文章: