《Unity 3D NGUI 实战教程》一2.2 认识基本的UI资源

2.2 认识基本的UI资源

Unity 3D NGUI 实战教程

2.2.1 什么是UI精灵(Sprite)

我们在制作UI时,经常将一些零碎的小的UI资源(比如,一个小箭头、一个按钮等)打包成一张大图,然后在使用时,只使用这个大图中的一部分(例如,只使用其中小箭头的那一小块),那么这一块“被切出来”的图片,就可以称之为精灵。

如图2.11所示的就是一个又一个的UISprite。

2.2.2 什么是UI图集(Atlas)

我们在制作UI时,会将一些零碎的小的UI资源打包到一张大图中,然后再通过精灵的方式对这张大图进行使用,这张大图就是一个图集。这样不但可以减小美术资源的总体积,还可以减少载入内存的操作(图集作为一张整图会被一次性载入到内存中)并提高渲染性能,而且还可以减少维护大量零碎小资源的麻烦。

如图2.12所示的则是一个由Sprite组成的图集。

2.2.3 什么是UI贴图(Texture)

在NGUI中也有UITexture的概念,这个UITexture从功能用途上和Sprite精灵有很大的相似之处,都是为了显示一些图片资源。它和Sprite最大的区别在于,UITexture是一张独立的图,不依托于任何的图集,这张Texture有自己的材质球和Shader,每一个UITexture都将消耗一个DrawCall(不了解的读者可以理解为一个性能消耗单位)去渲染,每一个UITexture都将独立进行加载。

如图2.13中的大背景图就是UITexture。

2.2.4 什么是UI标签(Label)

标签(Label)在NGUI中并不是指一种标记物,而是指一种纯文本的UI元素。凡是由程序在UI上打出来的字,都属于标签的内容。例如,如果你需要在界面上长期地显示一行字:请打开背包进行整理,那么这行字属于一个Label。再比如,如果你需要显示角色的生命值为100/200,这个数字会随着角色的生命值而变化,这个生命值的数字也属于一个标签,然后代码会根据角色的血量去读取并改变这个标签的内容。

如图2.14所示框中所有的文字信息都属于Label。

2.2.5 什么是UI字体(Font)

在制作UI的过程中,不可能所有地方都由美术完成,最典型的例子就是UI上面的文字。很多时候UI上面的文字都是不停地在进行变化,并且没有什么复杂的艺术字效果,不可能全部由美术制作成图片提供给程序,这个时候就需要程序在UI上进行写字。程序在UI上写字时,就将用到UI字体。

NGUI的字体分为动态字体和静态字体。程序人员可以选择把某种特殊字体文件中的一些所需的字拿出来形成一张图,然后打字时会从这张图里去调用文字(类似于调用Sprite),这就是静态字体。也可以直接导入字体文件(例如,宋体、楷体等字体文件),打字时只要字体文件里拥有的字都能正常使用,这就是动态字体。当然,NGUI有系统自带的默认动态字体。

如图2.15所示则为静态字体图集,图2.16所示则为动态字体文件(.ttf格式)。

时间: 2024-12-05 13:56:32

《Unity 3D NGUI 实战教程》一2.2 认识基本的UI资源的相关文章

《Unity 3D NGUI 实战教程》一2.5 创建第一个UI

2.5 创建第一个UI Unity 3D NGUI 实战教程 2.5.1 创建一个2D UI 制作UI时,首先我们要创建UI的"根".在Unity顶部NGUI菜单中选择Create,然后选择2D UI,如图2.25所示. 创建完成后,我们能看到图2.26所示的景象,在Scene窗口中,NGUI自动生成了一个名为UI Root的物体,其中带有一个Camera作为子物体. 这个新生成的Camera,是NGUI生成的专门用来渲染UI的相机,当我们生成NGUI的UI Root时,就自动将生成的

《Unity 3D NGUI 实战教程》一2.4 制作第一个UI字体

2.4 制作第一个UI字体 Unity 3D NGUI 实战教程 2.4.1 为什么要制作UI字体 在游戏的项目开发中,字体是经常会用到的东西,因为游戏中不论是聊天.公告.提示语还是界面显示,都会涉及用程序来写字.一般来说,会有系统默认字体供我们使用,但是出于以下两个原因我们经常会需要制作独特的字体. 系统字体的风格和美观程度等无法满足我们的需求.一般来说,系统字体都比较死板.生硬,风格单一,经常无法满足项目需求.例如,我们希望游戏中所有文字都使用楷书来突出中国风,那么则需要我们自己植入楷书字体

《Unity 3D NGUI 实战教程》一2.3 制作第一个UI图集

2.3 制作第一个UI图集 Unity 3D NGUI 实战教程 2.3.1 学会解剖UI的资源结构 为什么要剖析UI的资源结构?因为通常情况下,策划设计好UI的功能和大概布局之后,美术人员会做出一张UI的成品效果图,我们称之为UI设计图.然后,客户端程序需要根据自己的制作方式,告诉美术人员如何分割出相应的UI元素提交给程序,以完成制作. 下面以图2.17所示的UI设计图作为例子来讲解分析.首先说明一点,客户端程序一定要同时拿到UI设计图和UI功能描述文档才能彻底知道这个UI会进行什么样的操作逻

《Unity 3D NGUI 实战教程》一2.6 2DUI和3DUI的工作原理

2.6 2DUI和3DUI的工作原理 Unity 3D NGUI 实战教程 2.6.1 2DUI的工作原理 先创建一个2DUI(创建方法上文已讲过),然后在2DUI的"根"UIRoot下创建两个精灵(创建方法后面会详解).然后得到的效果如图2.32所示. 从图2.32中可以看到,创建的两个Sprite为两个按钮图片,它们的位置在UIRoot的红框(视窗)上,也就是Sprite的z轴.相机的z轴.UIRoot的z轴都为0,因为2DUI都是纯粹的2D图片按层次显示,不会出现三维立体效果,所

《Unity 3D NGUI 实战教程》一2.1 导入NGUI插件

2.1 导入NGUI插件 Unity 3D NGUI 实战教程 2.1.1 NGUI版本介绍 NGUI插件目前较新的版本是3.6以后的版本. 在NGUI 3.0以前的时期,底层的事件通信体系完全依赖于SendMessage,这是一个效率比较低下的发消息方式,那个时期大多数Unity的开发者都在使用当时很流行的NGUI 2.6版本,甚至目前还有少数开发者在使用. 在NGUI 3.0及以后的版本中,NGUI进行了大革新,其中革命性的就是将整个的底层消息机制全部换为效率高的EventDelegate.

《Unity 3D NGUI 实战教程》一2.7 深度(Depth)概念

2.7 深度(Depth)概念 Unity 3D NGUI 实战教程 2.7.1 强化对深度的理解 深度的概念将会一直伴随着UI的制作过程,是UI中一个非常重要的概念.我们在2.5.3小节中讲解UIPanel时已经讲解了深度的概念,这里我们再强化一下对深度的理解.在老版本的NGUI中,UI的显示层次关系是依靠z轴进行的.在新版本的NGUI中,所有UI的z轴都被统一,然后用深度来决定和管理显示的层次关系.关于深度,我们要记住一下关键点. (1)每一个UIPanel和每一个UI控件都一定会有一个De

《Unity 3D NGUI 实战教程》一导读

前 言 Unity 3D NGUI 实战教程在手机游戏开发兴起的当下,Unity 3D引擎依靠其良好的跨平台特性,一跃成为全球第一大引擎,被广泛地使用.越来越多的游戏开发者开始关注和使用Unity 3D引擎.Unity 3D引擎最大的短板在于其原生的GUI系统有很大的缺陷,例如,性能和方便程度等都不适合进行商业开发,所以,大部分开发者都开始使用NGUI.NGUI的GUI以良好的性能优化.方便的开发模式.成熟稳定等特点,已经成为全球Unity游戏开发者的UI制作首选插件.因为NGUI是一个插件的缘

《Unity 3D NGUI 实战教程》一1.2 什么是NGUI

1.2 什么是NGUI Unity 3D NGUI 实战教程 1.2.1 NGUI插件介绍 NGUI是专门针对Unity引擎.用C#语言编写的一套插件,经历了数十个版本的更迭之后,它已经成为了目前世界上应用最广.最成熟的Unity制作UI的插件,完美地弥补了Unity引擎原生GUI系统和NewGUI系统的各种不足之处.程序员可以利用它提供的一整套UI框架和事件通知系统来进行项目的UI设计和制作,NGUI凭借其强大的功能.良好的优化和易用易学性,让大多数程序员都赞赏有加! 1.2.2 NGUI的强

《Unity 3D NGUI 实战教程》一第 2 章 NGUI基础

第 2 章 NGUI基础 Unity 3D NGUI 实战教程本文仅用于学习和交流目的,不代表异步社区观点.非商业转载请注明作译者.出处,并保留本文的原始链接.