NGUI是Unity的一个插件,使用它来制作你的游戏UI必定将事半功倍。为什么这么说呢?首先我们说说GUI与NGUI的区别,GUI是Unity自带的绘制界面工具,它的成像原理是基于表层的,所以执行效率非常的低,并且没有提供复杂的UI的接口,就算开发者硬着头皮写上去只能让UI的执行效率更低。然而NGUI 完全依赖与3D就好比在游戏世界中的摄像机直直的照射在一个平面中,在平面之上再去绘制自己的UI,所以它的执行效率会非常高。

NGUI是一款收费的插件,在Asset Store中大家可以看到价格。在未购买正版的前提下我们可以通过两种方法来使用NGUI,第一种:使用官方提供的免费版本,但是这个版本中有NGUI的水印,无法正式发布不过完全可以作为学习使用。第二种:使用别人购买过的正版插件,在互联网中有朋友放出NGUI的插件。

这里提供免费版本NGUI的下载地址,是2.6.4版本的NGUI

http://pan.baidu.com/s/1f30Sc

首先导入NGUI package。在unity工程窗口中点击右键选择 Import package -> custom package,选择你下载的NGUI插件,导入完成后效果如图:
 
1.选择菜单NGUI -> Open the UI Wizard,弹出创建UI对话框。点击Layer窗口右边对应的按钮,弹出层选择对话框,在这里我们选择AddLayer
 
新建Layer窗口中,我们新建一个叫NGUI的Layer,添加Layer之后
再次回到UITool窗口,更改界面Layer为NGUI
 
 
在下面的Camera选项中有None,Simple2D,Advanced3d选项,分别用于创建不带camera的界面(这里如果已经有一个UI界面,我们只是想添加一个新的界面,可以选择这个),简单的2D界面(此选项没有Z轴效果),高级3D界面(此选项下的界面有Z轴效果,并且可以3D旋转,以此选项创建的UI有自适应分辨率的功能)。
 
在这里我们先创建一个Simple2D界面,选择好之后点击下面的Create Your UI按钮,创建一个UI。程序会自动为我们创建一个有节点层级关系的一些物体,如图,分别是UI根节点,,一个相机节点,一个锚点节点,和一个用于盛放按 钮等UI的Panel节点我们现在可以不用管这些节点的功能和作用,只要记住Panel节点即可,以后我们创建的所有按钮等UI都放在Panel层级下。

UI ROOT(2D):看着名字我想搞程序的都应该知道是啥意思吧?界面根节点、入口点。

Camera :NGUI生成的摄像机对象,它将直直的照射在锚点面板。

Anchor:界面的锚点,影响UI的显示位置。它下面会挂着面板。

Panel:面板,摄像机照射着它,它下面会挂一些控件,比如标签、按钮、精灵、拖动条等等。

创建UI元素,选择菜单NGUI -> Open the Widget Wizard,弹出创建UI元素对话框
 
首先是Atlas窗口,Atlas就是一个大的图片,里面用于存放我们需要用到的各种图标。在后面我们将讲解怎么创建自己的Atlas,Font是我们创建UI时用到的字体,Template可以允许我们选择要创建的UI类型,包括Label,Spirit等等,如图
我们可以使用NGUI自带的一些Atlas,如图是NGUI自带的一些Atlas,其中带有Font字样的是字体Atlas。
 
这里Atlas我选择Fantasy Atlas,Font选择Fantasy Atlas –Font Normal,在项目窗口中选择Fantasy Atlas拖到Atlas中,选择Fantasy Atlas –FontNormal,拖放到Font中,
 
在Template中,我们选择 Spirit,Spirit选项让我们选择需要创建的图标,这里我们选择smooth,Pivot默认的center ,然后确保AddTo右边的选项是我们要添加到的Panel中,如果不是,我们可以在Inspector中点击选中panel,NGUI会自动为我们切 换。最后点击AddTo,NGUI会在Panel节点下创建一个名称为Sprite (Smooth)的spirit。属性窗口如图:
 
 
1.      这里的atlas,Spirit,Pivot都是刚才创建的时候已经选择好的,如果不满意可以在这里修改。
Depth可以控制我们的图标向前或者向后偏移,例如如果我们想要某个图标在另一个图标的上方,我们可以把它的Depth设置更大。
Correction主要用于修正因图标像素是奇数而出现的问题。
Color Tint可以在图标颜色的基础上为图标着色,
Clipboard是剪贴版的颜色,当我们选择一个Cilpboard颜色后,点击Paste可以将颜色粘贴到ColorTint的颜色上。
Spirit Type表示要创建的Spirit平铺方式,包括Simple,Sliced,Tiled,Filled。如果图标较小,我们需要平铺很大,但是又不想看出重复,可以选择sliced。

这里我们选择sliced,Fillcenter选择默认。然后修改Spirit的缩放值。我们可以选择不同的SlicedType查看不同选项的效果。如图所示:

 
其中前三种选项大致一样,只有第四种Filled选项下又包括Fill Dir(填充方向),FillAmount(填充量),Invert Fill(反转填充)三个选项,这三个主要用于修改填充为360旋转填充,水平,垂直填充等,大家可以自己试验一下效果。
 
 声明: 本文由(zqcyou)原创编译,转载请保留链接: NGUI系列教程一

NGUI系列教程一的更多相关文章

  1. CRL快速开发框架系列教程一(Code First数据表不需再关心)

    本系列目录 CRL快速开发框架系列教程一(Code First数据表不需再关心) CRL快速开发框架系列教程二(基于Lambda表达式查询) CRL快速开发框架系列教程三(更新数据) CRL快速开发框 ...

  2. Laravel系列教程一:安装及环境配置

    免费视频教程地址https://laravist.com/series/laravel-5-basic 最近在SF上面看到越来越多的Laravel相关的问题,而作为一个Laravel的脑残粉,本来打算 ...

  3. Influx Sql系列教程一:database 数据库

    对于influxdb而言,database和我们更熟悉的mysql中的dababse没有什么特别的区别,可以将数据库简单理解为一堆表(measurement)的集合,接下来我们将看一下在influxd ...

  4. PdgCntEditor系列教程一:基础知识

    一.PdgCntEditor是什么? 二.为什么要用PdgCntEditor? 三.怎么用PdgCntEditor? 一.PdgCntEditor是什么? 这是一个目录编辑器,可以创建.编辑PDF.D ...

  5. Xamarin开发IOS系列教程一:安装黑苹果

    经过一番思想挣扎和斗争之后,最终还是选择采用Xamarin来开发跨平台移动应用,好处和优点大家可以搜索其它博文,因为家里面穷加上谈了恋爱,就不买苹果了,开发阶段在Windows上面直接搞定哈,时候不早 ...

  6. 如何在C#中引入CPLEX的dll(CPLEX系列-教程一)

    以前写在CSDN上的文章.转到博客园之后,打算把这个教程移过来,顺便完善后面的教程.主要是在Asp.Net+EF6里面使用cplex,完成一个最优生产计划的决策.当时在查找如何在C#中引用cplex时 ...

  7. Spring Boot系列教程一:Eclipse安装spring-tool-suite插件

    一.前言        一直使用eclipse,个人习惯选用Eclipse+spring-tool-suite进行开发,特别注意Eclipse要选用对应的spring-tool-suite进行安装,这 ...

  8. cocos2d-x-lua基础系列教程一(hello lua)

    myscene.lua function ERROR_TRACBACK(msg) print (==========) print ("lua error is "..tostri ...

  9. RabbitMQ系列教程之二:工作队列(Work Queues)(转载)

    RabbitMQ系列教程之二:工作队列(Work Queues)     今天开始RabbitMQ教程的第二讲,废话不多说,直接进入话题.   (使用.NET 客户端 进行事例演示)          ...

随机推荐

  1. 去model化开发

    前言 去model化是一种框架设计上的做法,其中的model并不是指架构中的model层,套用Casa大神博客中的原文就是: model化就是使用数据对象,去model化就是不使用数据对象. 常见的去 ...

  2. IIS7下w3wp.exe进程CPU100%问题解决办法

      IIS下经常会出现w3wp.exe进程的CPU使用率达到100%的情况,在IIS7出现之前,要想确定问题所在,可以通过WinDbg来调试分析,但整个过程对技术水平要求非常高,可以参考http:// ...

  3. VFS对象总结

    关键术语: 超级快(super block)对象: 一个超级块对应一个具体的文件系统(已经安装的文件系统类型如 ext2,此处是实际的文件系统,不是 VFS). iNode 对象: inode是内核文 ...

  4. TamperData火狐插件启用

    今天第一次在准备学习sqlmap的时候看到有人使用了这个TamperData火狐的插件,所以我也安装来看看,光是安装了,但是重启浏览器之后不知道怎么启用,得不到想要的运行界面,所以在这里记录一下,为自 ...

  5. 微信、微博、qq图标服务实现

    实现原理:变化前的图标和变化后的图标在一张图片上,用这张图片作为背景,通过定义背景的位置来实现显示哪个图标,其中还带着滑动的动画效果. <!DOCTYPE html> <html l ...

  6. 关于ServletConfig的小结

         在Servlet的配置文件中,可以使用一个或多个<init-param>标签为servlet配置一些初始化参数.当servlet配置了初始化参数后,web容器在创建servlet ...

  7. struts2中<s:property>的用法

    1,访问Action值栈中的普通属性: <s:property value="attrName"/> 2,访问Action值栈中的对象属性(要有get set方法):  ...

  8. iOS NSMutableArray替换某个元素

    A * a1 = [A new]; A * a2 = [A new]; A * a3 = [A new]; A * a4 = [A new]; NSMutableArray *arr = [[NSMu ...

  9. 几个动画demo

    一.点击扩散效果 这个效果没什么难度,主要是加深对核心动画的理解和使用,但是还是有几个想说明的地方.先看一下效果,具体内容代码里有注释. // // CircleButton.m // UITest ...

  10. 13_ServletContext对象

    [简介] ServletContext即Servlet上下文对象,该对象表示当前的web应用环境信息,一个Web应用只会创建一个ServletContext对象. Web容器启动的时候,它会为每个We ...