开发之前的思考-UI结构设计
UI结构设计遵循的一些要点
1.尽量不要让UI作为Camera的子物体
因为UI和摄像机敏感的关系,尽量不要将UI作为摄像机的子物体,避免出现一些因为透视(3D UI)等问题导致的视觉Bug。
2.尽量让Anchor组件所在的物体在最上层
因为屏幕自适应的适配工作是游戏避免不了的一个问题,Anchor组件所在的物体因为它具有定位自适应的重要功能,所以不宜太多,否则很乱不宜管理。最简单的方法就是尽量确保Anchor处于最上层。
3.给UI分类,多做节点管理
比如一个场景中,有很多按钮菜单,每一个菜单点开之后都会出现一个相应的子界面,所以,可以用一个空物体(注意要和UI同层)作为菜单的总节点,然后用另一个空物体作为所有子界面的总节点。给每一种UI类型都做一个节点以此来管理,避免各种UI直接放在一起难以管理和维护。
4.重视深度管理并巧用Panel
界面在画面上的显示次序是根据深度来的,这个深度主要指Panel的深度和每一个控件的深度。其中Panel的深度优先,只要是深度更大的Panel,它下面的所有子UI物体,几乎都将显示在更上层。利用这一点可以轻松地放置一些UI之间的层次错乱问题。
5.重视命名
需要的时候,分场景以减轻内存负担
因为UI图集在使用时,会以一整个图集全部加载到内存当中。如果有10个系统,每一个系统的界面都是全屏界面,都有一张巨大的界面独有的背景图,那么这10个系统的界面所用到的资源将会导致内存很大。
而Unity有一个机制是切换场景之后,会清除以前的内存,所以,在适当的情况下,可以考虑分场景来制作UI,以减轻内存的负担。相当于点开一个UI实则是进入了一个新的场景,看上去就像是全屏界面的效果一样,退出UI面板就相当于回到了之前的场景。
开发之前的思考-UI结构设计的更多相关文章
- 领域驱动和MVVM应用于UWP开发的一些思考
领域驱动和MVVM应用于UWP开发的一些思考 0x00 起因 有段时间没写博客了,其实最近本来是根据梳理的MSDN上的资料(UWP开发目录整理)有条不紊的进行UWP学习的.学习中有了心得体会或遇到了问 ...
- 实战使用Axure设计App,使用WebStorm开发(4) – 实现页面UI
系列文章 实战使用Axure设计App,使用WebStorm开发(1) – 用Axure描述需求 实战使用Axure设计App,使用WebStorm开发(2) – 创建 Ionic 项目 实战使 ...
- UWP开发的一些思考
UWP开发的一些思考 领域驱动和MVVM应用于UWP开发的一些思考 0x00 起因 有段时间没写博客了,其实最近本来是根据梳理的MSDN上的资料(UWP开发目录整理)有条不紊的进行UWP学习的.学习中 ...
- 无需编码开发快速设计互动式UI - uilang
uilang是一个非常小巧的ui类库,可以帮助不熟悉前端代码的web设计人员快速的开发互动式UI.你只需要使用“语义式”的说明来控制元素的动态效果. 开发中你只需要在<code>标签内部输 ...
- Google的跨平台开发高质量原生 UI 的移动 SDK---Flutter免费且开源
Flutter开发 https://www.cnblogs.com/zengfp/p/9927860.html Flutter 是 Google 用以帮助开发者在 iOS 和 Android 两个平台 ...
- [网页游戏开发]进一步了解Morn UI及工作流
Morn UI工作流 Morn Builder不仅仅是对Flash IDE的改进,传统的开发协作是以fla为基础,由于fla是二进制文件,在以svn等版本控制软件协作下,合并过程中会出现各种各样的问题 ...
- .NET Core 对龙芯的支持情况和对 .NET Core 开发嵌入式的思考
目录 .NET Core 对龙芯的支持情况和对 .NET Core 开发嵌入式的思考 一,遗憾的尝试 二,.NET Core在嵌入式下的几点不足 三,.NET Core 龙芯移植的进展和资料 .NET ...
- winform项目中开发的一套UI控件库
https://github.com/houyhea/winform-control-lib winform-control-lib 曾经在一个winform项目中开发的一套UI控件库 类图: 效果 ...
- iOS技术开发-人机交互指南之UI设计基础:iOS App Anatomy
第二篇更多的是从技术的角度对iOS界面组成原理进行了简单的解析,篇幅很短,可稍作了解:更多关于iOS开发入门的内容可参考“设计师应该了解的iOS应用开发基础知识”一文.另外,非常感谢各位朋友在微博上的 ...
随机推荐
- tomcat部署应用的几种方式
接着上篇 tomcat配置详解,再来学习下如何在tomcat下部署应用 1.部署方式 第一种,最常用,直接把WAR包或者文件夹直接放到webapps目录下面,这时访问路径就是WAR包或者文件夹的名称. ...
- ZOJ 3209 Treasure Map (Dancing Links)
Treasure Map Time Limit:2000MS Memory Limit:32768KB 64bit IO Format:%lld & %llu Submit S ...
- 逆向+两次bfs(UVA 1599)
为什么都说简单好想咧.坦白从宽看了人家的代码,涨了好多姿势,, http://blog.csdn.net/u013382399/article/details/38227917 被一个细节坑了.. 2 ...
- hdu 4671 瞎搞
题意:每个用户对数据库的查询请求都会首先用该数据库的服务器序列的第一个去执行任务,若第一个坏了,就由第二个执行.最多只会坏一个服务器.要求是考虑最多坏一个的情况下,所有服务器中执行用户查询的数目最大值 ...
- 1、关于Boolean(2015年05月30日)
背景:刚在看Effective Java,看到一段关于Boolean提供一个返回实例的静态方法的例子,便去看了下Boolean的源码,发现有些内容是之前没注意到的,于是便有了下面这些. 1. Bool ...
- Java - 正则表达式常用操作
验证 简单验证 String regex = "\\d{4}-\\d{2}-\\d{2}"; String input = "2016-01-01"; asse ...
- hdoj1423 最长上升公共子序列
hdoj1423 题目分析: 两个数组a[n1] , b[n2], 求最长上升公共子序列. 我们可用一维存储 f[i] 表示 b 数组以 j 结尾, 与 a[] 数组构成的最长公共上升子序列. 对数组 ...
- CSS之拖拽库2
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.or ...
- SQL 数据库基础语句
一.基础 1.说明:创建数据库CREATE DATABASE database-name 2.说明:删除数据库drop database dbname3.说明:备份sql server--- 创建备份 ...
- SQL Server查看表信息
1. sp_spaceused 计算数据和索引使用的磁盘空间量以及当前数据库中的表所使用的磁盘空间量.如果没有给定 objname,sp_spaceused 则报告整个当前数据库所使用的空间. 语法 ...