欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > IT业 > unity 程序做一个折叠菜单

unity 程序做一个折叠菜单

2025/4/19 12:03:36 来源:https://blog.csdn.net/qq_34090937/article/details/140928592  浏览:    关键词:unity 程序做一个折叠菜单

第一次遇到这种需求,本来以为很难,没想到试了一下以后没啥难度,所以记录一下

首先新建一个scroll view,然后在content里面添加vertical layout group和content size fitter这两个组件。(vertical layout group 的 spacing要设置成10左右,这一步是关键)

然后在content里面放几个按钮,充当标题栏和内容栏

然后在脚本中给按钮赋值,这样就可以使用代码控制按钮了

public Button 标题;
public Button 内容1;
public Button 内容2;
public Button 标题2;
public Button 内容3;
public Button 内容4;// Start is called before the first frame update
void Start()
{标题.onClick.AddListener(new UnityEngine.Events.UnityAction(ShowOrHideBtn));标题2.onClick.AddListener(new UnityEngine.Events.UnityAction(ShowOrHideBtn2));
}// Update is called once per frame
void Update()
{}private void ShowOrHideBtn()
{if(内容1.gameObject.activeSelf){内容1.transform.DOScaleY(0, 0.3f).OnComplete(() => { 内容1.transform.gameObject.SetActive(false); });内容2.transform.DOScaleY(0, 0.3f).OnComplete(() => { 内容2.transform.gameObject.SetActive(false); });}else{内容1.transform.gameObject.SetActive(true);内容1.transform.DOScaleY(1, 0.3f);内容2.transform.gameObject.SetActive(true);内容2.transform.DOScaleY(1, 0.3f);}
}private void ShowOrHideBtn2()
{if (内容3.gameObject.activeSelf){内容3.transform.DOScaleY(0, 0.3f).OnComplete(() => { 内容3.transform.gameObject.SetActive(false); });内容4.transform.DOScaleY(0, 0.3f).OnComplete(() => { 内容4.transform.gameObject.SetActive(false); });}else{内容3.transform.gameObject.SetActive(true);内容3.transform.DOScaleY(1, 0.3f);内容4.transform.gameObject.SetActive(true);内容4.transform.DOScaleY(1, 0.3f);}
}

效果如下:

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词