Unity多级菜单的简单例子

之前项目中需要一个树状的多级菜单,Unity Asset Store里也有些现成的插件,但是在将其修改成与项目中一致的风格比较难,于是就参考了一下成熟的插件,自己实现了一个树状菜单功能,这样就可以使用自己的UI风格。

Unity的UGUI虽然使用简单了,但是还是存在不少的Bug,如果按照常规的思路,把子节点设置为父节点的子物体,然后动态计算父节点的大小从而计算总的大小,Unity有现成的的ContentSizeFilter可以计算总的大小,但是嵌套使用进行布局的话出现布局错乱的问题。

这个多级菜单实现的思路比较简单,就是一个简单的树状结构的深度优先遍历,然后将其设置为ScrollView下同级的对象,父子节点的关系则由代码进行维护,展开收起则直接进行SetActive操作,实际使用的效果还是可以的。

主要由两个脚本组成:TreeViewNodeManager和TreeViewNode。

实现的效果图如下所示:

示例的工程基于Unity5.5.2f,github地址为:

https://github.com/vbtang/TreeViewDemo.git

原文地址:https://www.cnblogs.com/vbtang/p/8167286.html

时间: 2024-07-30 15:34:20

Unity多级菜单的简单例子的相关文章

jquery自定义插件-参数化配置多级菜单导航栏插件

1 自定义菜单导航栏插件的必要性 看图说话,下面是利用自定义的菜单导航栏插件simpleMenu创建的网站导航示例: 插件默认提供的是如上图的导航栏样式,即一二级菜单为横向分布:三四级菜单为纵向分布. 使用插件时,可以修改默认参数,目前插件提供了设置菜单的分布方式:横向或纵向:菜单的位置:依赖上一级菜单栏的定位:上下左右定位. 修改调用参数,将一二级菜单改为纵向排列:并将三级菜单的显示位置改为二级菜单栏的右侧(其他的和默认保持一致),修改后运行效果如下图: 细心的观察,会发现上面两个菜单导航栏的

antd-init生成项目启动不成功,boostrap3 没有多级菜单

简单记录一下这两周遇到的问题. 其一: 最近正尝试使用ant design,根据官网教程搭建环境,调用npm start,执行 dora -p 8001 xxxxxx,在我的机器上例子可以运行起来. 但在同事的机器上,没有任何提示,就直接退出了(没有报错),当时就觉得很奇怪,资料也是查不到的,经过一轮尝试之后,觉得是系统的问题,系统是win7. 同事的机器没有装sp1,后来安装sp1后,项目就能顺利启动了.不知道sp1是不是对node有影响,我没有找到相应的资料,所以只简单做一下记录,如果有人也

动态生成多级菜单

MVC5+EF6 入门完整教程13 -- 动态生成多级菜单 稍微有一定复杂性的系统,多级菜单都是一个必备组件. 本篇专题讲述如何生成动态多级菜单的通用做法. 我们不用任何第三方的组件,完全自己构建灵活通用的多级菜单. 需要达成的效果:容易复用,可以根据model动态产生. 文章提纲 概述要点 && 理论基础 详细步骤 一.分析多级目录的html结构 二.根据html结构构建data model 三.根据data model动态生成树形结构 四.解析树形结构成html 总结 概述要点 &am

MVC5+EF6 入门完整教程13 -- 动态生成多级菜单

稍微有一定复杂性的系统,多级菜单都是一个必备组件. 本篇专题讲述如何生成动态多级菜单的通用做法. 我们不用任何第三方的组件,完全自己构建灵活通用的多级菜单. 需要达成的效果:容易复用,可以根据model动态产生. 文章提纲 概述要点 && 理论基础 详细步骤 一.分析多级目录的html结构 二.根据html结构构建data model 三.根据data model动态生成树形结构 四.解析树形结构成html 总结 概述要点 && 理论基础 要实现动态菜单,只要解决两个问题:

shell实现多级菜单脚本编写

这篇文章主要介绍了Shell实现多级菜单系统安装脚本实例分享,本文脚本用多级菜单实现LAMP.LNMP安装展现效果,需要的朋友可以参考下: 提示:本脚本主要实现多级菜单效果,并没有安装LAMP.LNMP环境,如果要用在实际生成环境中部署LNMP.LAMP环境,只需要简单修改一下就可以了. 演示效果: 1.一级菜单 2.二级菜单 3.执行操作 脚本参考: 代码如下: #!/bin/bash # [ -f /etc/init.d/functions ] && . /etc/init.d/fun

Web前端开发实战6:CSS实现导航菜单结合二级下拉式菜单的简单变换

前面几篇博文都在讲导航菜单和二级下拉式菜单,其实有很多方法都可以实现的,具体的情况还要视情况而定. 在后面学习到jQuery框架之后,会有更丰富的动画效果,由于在学习Ajax和jQuery的初步阶段,对于很多的复杂的导 航菜单和二级下拉式菜单没法做,但是学习了CSS和JS还是能实现一些简单的变换的.这篇博文就来说说用CSS实现 导航菜单结合二级下拉式菜单的两个简单变换吧. 首先还是在前面博文的基础上加以实现,其实只用HTML和CSS还是可以做出不错的效果,但是相较于JS和 jQuery来说就有很

zTree下拉菜单多级菜单多选实现

惯例,先上图: 这是在一个项目中,为了满足样式美观.多级菜单以及多选而将zTree插件更改过后的效果. 在实际的开发过程中,本来zTree也是可以满足需求的,但是zTree多选的话需要checkbox选择框,这样导致样式风格和项目总体不一致.下面是根据ztree所修改的内容. 如上图 这是个outlook样式的菜单. 我们只需要简单的右键,查看代码,就可以把源码拿下来看看. 我们需要的源码如下: <SCRIPT type="text/javascript"> <!--

JFrame、JPanel 、Layout开发的简单例子

写了Java这么久,居然发现想手写一个带网格袋布局的JFrame,还不记得怎么写,写了这么多代码真不敢说记得所有细节. 幸好,只要记清楚概念就能快速开发.首先,明确一下3种容器类的差别和用途: No. 区别 1 Panel JPanel用于放置其他控件,也包含其他panels. 2 Frame JFrame 是包含 title and a border的第一层级的容器,其中通过布局设置JPanel或其他控件的位置. 3 Window JWindow是不包含 title and a border的

前端开发css实战:使用css制作网页中的多级菜单

前端开发css实战:使用css制作网页中的多级菜单 在日常工作中,大家都会遇到一些显示隐藏类菜单,比如页头导航.二维码显示隐藏.文本提示等等......而这些效果都是可以使用纯css实现的(而且非常简单),使用css的优势显而易见,它可以使页面中的javascript变得更少. 实现逻辑: 核心:hover伪类控制子元素的显示隐藏,添加css3动画;  (没错就是这样简单) :hover伪类,适用于当用户指向一个元素时,例如用户的鼠标指向一个段落p.当用户鼠标离开元素时,恢复元素原有的样式显示