unity 程序做一个折叠菜单

news2024/9/21 0:38:27

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

首先新建一个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);
    }
}

效果如下:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1983092.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

前端常用的性能优化方案

目录 性能分析工具lighthouseWebpack Bundle分析 开发阶段按需引入路由懒加载 打包阶段打包配置减少包体积配置压缩分包 资源预加载/预请求 部署阶段开启http2静态资源缓存gzip压缩 性能优化主要在三个阶段进行:开发阶段、开发结束后的打包阶段、项目部署上线阶段 首…

动态规划例题

目录 A.小红组比赛 B.小红升装备 A.小红组比赛 思路 :经典的多重背包问题,这里将dp[ i ][ j ]定义为前 i 场比赛的难度 j 是否可能,所以dp只需用0 1 表示,然后遍历dp[ n ][ j ]即可。 代码: void solve() { cin&g…

TRANSFORMERS FOR IMAGE RECOGNITION AT SCALE(Transformer 在图像中的应用)翻译

摘要 虽然Transformer架构已成为自然语言处理任务的实际标准,但其在计算机视觉领域的应用仍然有限。在计算机视觉中,注意力机制要么与卷积网络结合使用,要么用于替换卷积网络的某些组件,同时保持其整体结构不变。我们证明了这种对…

抖音网红老阳:temu选品师好做吗?

抖音网红老阳近期分享了关于成为TEMU选品师的话题,引发了不少人的关注和讨论。那么,成为TEMU选品师究竟是一种怎样的体验?这项工作适合大多数人吗? 首先,TEMU选品师的工作内容主要集中在拼多多跨境电商平台上,这是一种新兴的电商…

VS Code 扩展之——私有扩展管理(Private Extension Manager)

为什么需要私有扩展的管理器? 和 Eclipse IDE的插件开发类似,VS Code(Visual Studio Code)也可以很容易的对VS Code编辑器进行创建和扩展新功能,这些扩展可以涵盖代码片段、主题、语言支持、调试器等多个方面。 VS Co…

昂科烧录器支持TI德州仪器的32位微控制器TMS320F28032

芯片烧录行业领导者-昂科技术近日发布最新的烧录软件更新及新增支持的芯片型号列表,其中TI德州仪器的32位微控制器TMS320F28032已经被昂科的通用烧录平台AP8000所支持。 C2000™ 32位微控制器针对处理、感应和驱动进行了优化,可提高实时控制应用&#x…

IDEA全局搜索Jar包中内容

IDEA全局搜索Jar包中内容 【一】下载源码【二】搜索内容【1】按文件名搜索【2】全局关键字搜索【3】方法引用 【一】下载源码 想要搜索Jar中关键字,必须先把jar包源码下载下来,否则搜不到。 Preferences --> Maven --> Importing,根据…

类与对象的介绍

目录 一、类与实例的关系 二、快速入门-面向对象的方式解决养猫问题 三、类和对象的区别和联系 四、对象在内存中的存在形式 五、属性/成员变量 1、基本介绍 2、注意事项和细节说明 六、类的定义和使用 1、如何定义类 2、如何创建对象 3、如何访问属性 七、对象的传…

深⼊理解指针(4)

1. 回调函数是什么? 2. qsort使⽤举例 3. qsort函数的模拟实现 1. 回调函数是什么? 1. 回调函数是什么? 回调函数就是⼀个通过函数指针调⽤的函数。 如果你把函数的指针(地址)作为参数传递给另⼀个函数&#xff…

【Python】Numpy概述安装及使用

文章目录 Numpy概述Numpy开发环境搭建Numpy使用创建数组创建一维数组创建二维数组创建三维数组,array()函数ndmin参数的使用array()函数dtype参数的使用随机数创建 Numpy概述 Numpy是科学计算基础库,提供大量科学计算相关功能,比如数据统计&…

SpringMabatis学习笔记1

今日内容:搭建mybatis ORM 配置数据源 $#的区别 增删改 ORM (Object Relational Mapping,对象关系映射)是一种数据持久化技术,它在对象模型和关系型数据库之间建立起对应关系,并且提供了一种机制&#xff0…

2024软考注意!!《系统规划与管理师》大概率要改版,新教材已出

系统规划与管理师考试是全国计算机技术与软件专业技术资格考试的高级水平考试之一,一年仅考一次,也是2024年下半年的4门高级考试中,最适合零基础考生的高级科目。近日在国家版本数据中心,查到系统规划与管理师已经有2024最新版的教…

Windows常用的运行命令

cmd - 命令提示符 cmdcalc - 打开计算器 calcservices.msc - 本地服务设置 services.msccontrol - 打开控制面板 controlwinver - 查看windows版本 winvermstsc - 连接远程电脑 mstsc ms t(terminial终端) s(service服务)c(client客户端) mstscmspaint - 打开画图 m…

特斯拉智驾方案演变过程

目录 一、概述二、特斯拉算法的发展历程2.1 特斯拉第一代算法:HydraNets2.2 特斯拉第二代算法:BEV + Transformer2.3. 特斯拉第三代算法:占据网络2.4. 特斯拉第四代算法:端到端方案三、智驾技术特点3.1 算法3.2 算力3.3 数据四、端到端挑战一、概述 在当今科技飞速发展的时…

智能家居沙盘系统-智慧家居沙盘系统

智能家居和物联网技术是当前科技领域的热门话题,随着各类智能家居产品的不断推出,智能家居市场也逐渐呈现出蓬勃发展的态势。智能家居快速发展,而物联网相关人才供应远远不足。高校开展智能家居工程及设计人才教育培养具有重大意义。 基本介绍…

一键登录,打造华为账号便捷新体验

作为鸿蒙世界的通行证,一个华为账号可以登录所有的HarmonyOS设备,为HarmonyOS设备无缝衔接和协同使用提供诸多便利。HarmonyOS SDK华为账号服务(Account Kit)提供简单、快速、安全的登录功能,让用户快捷地使用华为账号…

04:【stm32】LED编程和按键控制

LED编程和按键控制 1、LED编程1.1、点亮一课LED灯 2、按键控制2.1、通过一个按钮控制LED灯的亮灭 1、LED编程 1.1、点亮一课LED灯 首先,我们想象一下,让LED灯点亮,引脚应该是输出模式,那么应该是通用模式,还是复用模式…

视频如何生成二维码(自动生成二维码)完整教程

在企业中,产品视频二维码怎么制作,产品二维码怎么实现微信扫码便捷观看?上图文教程:视频二维码生成器/上传视频自动生成二维码完整教程。 目前市面上有很多工具,可以实现,比如草料二维码、酷播云二维码等等…

软考:软件设计师 — 10.面向对象技术

十. 面向对象技术 1. 面向对象基本概念 (1)对象与类相关概念 在面向对象的系统中,对象是基本的运行时的实体,它既包括数据(属性),也包括作用于数据的操作(行为)。一个…

计算机组成原理 —— 微操作控制器

计算机组成原理 —— 微操作控制器 指令,微操作,微指令和微程序之间的关系指令 (Instruction)微操作 (Micro-operation)微指令 (Microinstruction)微程序 (Microprogram)关系示例 微程序控制器的基本结构微程序控制器的基本结构工作流程 微指令的基本格式…