制作第一个UI图集
按钮分有两种形式,一种是普通按钮,也就是一张没有文字的按钮图片,在需要用时,就在上面写上不同的、当前所需要的文字。量一种按钮则是图片按钮,这种按钮的特点是整个按钮就是一张图片,它既是按钮也是图片。
在剖析UI资源结构时一定要秉承一下几个原则:
1.尽量保证还原设计图的效果,不损失质量,这是前提。
2.尽量发现重复的元件,而且重复的元件只需要一份就足够。
3.尽量分割得零碎一点,避免多个元件合并一起出图,这样对项目不利。
4.尽量使用九宫格来制作比较大的底板、底框等。
5.UI切图全部让美术人员以PNG格式导出。
如何导入切好的美术资源
在Unity的Project窗口下的Assets文件夹下面建立一个文件夹,将该文件夹命名为Resources,表示这个项目的资源都放在这个文件夹下面,UI资源也不例外。这个文件夹名字一定要设定为Resources,不能改动。
Unity开发中,如果设计动态加载(在游戏中触发了某个条件才需要加载)的情况,都会用到Unity的资源加载方法:Resources.Load();这要求需要被动加载的资源一定要放在Assets下面一个叫Resources的文件夹中。
因为Unity在生成游戏安装包时,对于Resources以外的文件夹,只会打包场景中用到的资源文件,而对于Resources文件夹,因为涉及动态地往内存里加载资源,所以Unity会无条件的全部打包。
用Atlas Maker制作图集
在Unity的Project窗口中选中UI元件,单击鼠标右键,选择最顶部NGUI菜单,选择Open Atlas Maker(Atlas Maker是NGUI自带的一个UI图片打包工具),这样就能自动将这些UI元件放入到Altas Maker中。或者在Unity顶部的菜单栏中,选择NGUI菜单,然后选择Open->Atlas Maker即可。
  
标号为1的红框是已有图集的选择按钮,如果需要将新导入的UI素材资源全部新增到一个已有的图集里,就可以单击这里。单击后能看到当前项目工程中已有的所有的图集,然后可以选择其中一个图集,此时标号为2的红框处的按钮将变成Add/Update,这样就可以新增或者更新这批资源到已有的选定的图集中了。
标号为2的红框是主按钮,当要打包的UI素材资源没有选定打包到某个已有图集中去时,这个主按钮会显示Create,意为用这些资源创建一个全新的图集。如果通过标号1的红框处的按钮选择了一个已有图集的话,这个主按钮将变成Add/Update,意为新增/更新当前这批UI资源到选中的图集中。更新的机制为同名的Sprite图片将会被替换。
图中标号3处的红框显示的是当前选中的UI图片资源的序号和文件名称,标号4处的红框显示的是这些资源哪些是新增的;哪些是更新的;哪些是已有的。在这里,如果选中了一个已有图集,那么该图集中的Sprite也会一起显示出来。
如果需要更新现有图集中的某一个精灵,则将新的精灵图片文件的名字设为和它要替换的精灵的名字一样,然后按照以上步骤选择它要替换的精灵所在的图集,单击Add/Update即可实现直接替换资源。
当需要创建一个全新的图集时,单击Create主按钮,会弹出Save As对话框,将路径定位到Resources目录下,然后将图集的名称改为"MyFirstAtlas",单击"保存"按钮即可。文件保存后是一个Prefab。
单击"保存"按钮之后,中间的主按钮变成了View Sprites,单击后可以预览该图集中所拥有的精灵。
关闭Atlas Maker界面,然后注意看Project窗口中,Resources目录下除了之前导入的UI图片资源以外,多出了3个名为"MyFirstAtlas"的文件。这3个文件是一个图集必须具备的3个文件:图集的贴图、图集的材质球和图集的预设体。其中,球形图标文件为图集的材质球;蓝色方块的文件为图集的预设体;图片缩略图文件则是图集的贴图,也就是精灵合成为一张整图之后的图片。
特别注明:在制作完UI图集之后,可以将之前导入Unity的UI资源源文件删除以减小资源量。
制作第一个UI图集的更多相关文章
- 制作第一个UI字体
		
为什么要制作UI字体 一般来说,会有系统默认字体共我们使用,但是出于以下两个原因我们经常会需要制作独特的字体. 1.系统字体的风格和美观程度等无法满足需求. 一般来说,系统字体都比较死板.生硬,风格单 ...
 - 创建第一个UI
		
创建一个2D UI 制作UI时,首先要创建UI的"根".在Unity顶部NGUI菜单中选择Create,然后选择2D UI. 创建完成后,在Scene窗口中,NGUI自动生成了一个 ...
 - 新建一个UI窗口-XproerUI(MFC)教程
		
版权所有 2009-2015 荆门泽优软件有限公司 保留所有权利 产品首页:http://www.ncmem.com/apps/xproerui/index.asp 在线文档(XproerUI):Xp ...
 - 模仿京东顶部搜索条效果制作的一个小demo
		
最近模仿京东顶部搜索条效果制作的一个小demo,特贴到这里,今后如果有用到可以参考一下,代码如下 #define kScreenWidth [UIScreen mainScreen].bounds.s ...
 - 使用css3和伪元素制作的一个立体导航条
		
使用css3和伪元素制作的一个立体导航条供大家参考,代码如下: <!doctype html> <html lang="en"> <head> ...
 - Qt初学——我的第一个UI
		
第一次打开Qt的时候,我是一脸懵逼的.没学过c++,里面的程序都看不懂.按照套路,我开始看教程,上手实践.连着搞了3天之后,我开始渐渐明白怎么写UI. 我现在的理解是:UI = 界面设计 + 信号槽响 ...
 - 缺一个UI设计
		
这几天弄小程序的界面真的是太艰难了,神呐,请赐我一个UI吧 甚至,在第二种布局下的渐变过渡,都拿笔来计算了TT 还有这个色调的选择,在避免过渡效果突兀的处理上,真的是很费工夫啊: 我谁都不服,就服那些 ...
 - 自已实现一个UI库
		
[2014年写一个UI库时写的几个文章,公布出来] 几年前的一个嵌入式的UI开发,使自己有机会接触到了UI的一些底层知识,尽管之前也开发过非常多Windows下的信息应用系统,也做非常多的界面开发,但 ...
 - 利用WPF建立自己的3d gis软件(非axhost方式)(八)拖动一个UI到地球上
		
原文:利用WPF建立自己的3d gis软件(非axhost方式)(八)拖动一个UI到地球上 先下载SDK:https://pan.baidu.com/s/1M9kBS6ouUwLfrt0zV0bPew ...
 
随机推荐
- About xvfb
			
http://blog.csdn.net/span76/article/details/11473315 有时候我们不关注程序是否有界面(比如自动化测试),只要程序在运行就可以了 很感谢 xvfb 这 ...
 - 数据结果与算法分析(1)——算法分析
			
在确定一个算法正确的同时,也要保证算法的有效性.算法分析的最重要的标准时运行时间T(N),运行时间与输入元素个数N有关. 数学基础 T(N) = O(f(N)) 表示T(N ...
 - git 撤销修改以及删除文件
			
撤销修改 1.如果当你修改了代码,然后又发现修改错误以后,想撤销前面的操作的时候该怎么办呢? 既然错误发现得很及时,就可以很容易地纠正它.你可以删掉最后一行,手动把文件恢复到上一个版本的状态.如果用 ...
 - oracle学习总结5(游标、触发器、过程、方法)
			
1:捕获plsql抛出的异常 declarev_ename emp.ename%type;beginselect ename into v_ename from emp where empno=10; ...
 - 最小生成树------Prim算法
			
定义:设G=(V,E)是一个无向连通图.如果G的生成子图T=(V,E’)是一棵树,则称T是G的一棵生成树(Spanning Tree). 应用生成树可以得到关于一个电网的一组独立的回路方程.第一步是要 ...
 - css3边框、阴影
			
一.图像边框border-image 语法:border-image:border-image-source(图片) || border-image-slice(裁剪位置) || border ...
 - SQL Server 2012 中 Update FROM子句
			
首先说明一下需求以及环境 创建Table1以及Table2两张表,并插入一下数据 USE AdventureWorks2012; GO IF OBJECT_ID ('dbo.Table1', 'U') ...
 - html表单-双向绑定
			
潜水多年.一直是只看不评不写多年,每每看到各位大牛分享的经典文章都是默默的收藏,对大牛技术分享技术表示感谢,这么多年从博客园学到了很多. 这段时间项目告一段落. 正好这段时间相对清闲,我也整理一些常用 ...
 - ASP.NET 使用C#代码设置页面元素中的样式或属性
			
在HTML元素的属性中加上runat ="server"和ID="MyTag"即可在后台代码中通过设置MyTag.Style的值来控制样式. 例如:在前端页面加 ...
 - spring mvc 全局异常处理
			
package com.tool; public class MyException extends Exception{ public String Msg; public String ErrCo ...