开发工具:NGUI v.3.0.5.unitypackage、Unity3d 4.0

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

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

插件下载完毕后打开Unity开始导入插件,首先在Project视图中右键选择Import Package->Custom Package-> NGUIv.3.0.5.unitypackage(刚刚下载至本地的插件)导入完毕后,请刷新一下你的工程确保Unity导航菜单栏中出现NGUI的菜单项,Unity的版本不同可能导致NGUI导入时不存在菜单项,也可以退出Unity在重新进入即可

首先在Unity导航栏菜单中选择NGUI->Open->UI Wizard。如下图所示,弹出UI Tool工具栏。Layer下拉列表表示摄像机的显示层。Camera下拉列表设置摄像机的朝向是2D 还是3D,最后直接点击Create Your UI即可创建一个新的界面。

接着NGUI会自动帮我们在Hierarchy视图中生成如下的对象关系。

UI ROOT(2D):界面根节点、入口点。

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

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

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

接着我们开始创建界面组件,在Unity导航菜单栏中选择NGUI-> Open->Widget Wizard创建小部件,然后选择字体与图像集合,这里先选择它自带的图像集合,后面我们再学习如何制作自己的图像集合。接着选择贴图的模板最后完成创建即可,这里我们创建一个简单的贴图。

下面我们将材质绑定在刚刚创建的Texture身上。如下图所示,绑定UISprite脚本。

P:X、Y、Z坐标;

R:X、Y、Z轴的旋转;

S:X可理解为图片宽,Y理解为图片高;

刚刚我们创建的模板为Texture,NGUI会帮我们绑定UITexture脚本。

Material:添加的材质对象,为了让材质显示的更加清晰,我们设置材质的着色器为Unlit/Texture

Depth:表示深度,就好比UI绘制的先后顺序,数值越高越先绘制,它主要应用于Sprite精灵,在Simple Texture中设置无效,不过可以通过修改Z轴坐标的形式来更改绘制顺序。

Color Tint:设置颜色,用于没有贴图的材质。

Correction:自动设置图片宽高,就好比本例中我的图片宽高是128X128,点击该按钮后会自动修改Transform中S的X = 128与Y = 128。

Pivot:贴图显示的锚点。

Preview:是否在监测面板视图中预览下方我的头像贴图。

继续创建一个Texture 绑定在面板中,两个Texture图像都显示了出来。如图所示最后的效果图。

接着我们创建一个简单的按钮,选择NGUI 资源包中合适的一组图像集合。下面将介绍如何自定义这个图像集合,Template中选择Button,Background在下拉菜单中选择,我们用它作为我们的按钮背景。

然后编写简单的脚本来监听这个按钮的点击事件、这段代码的意思就是点击按钮后删除女生头像,创建脚本ButtonTest.cs。

using UnityEngine;
using System.Collections;public classButtonTest : MonoBehaviour{voidOnClick(){Destroy(GameObject.Find("Texture01"));}
}

OnClik()方法当点击按钮时调用,前提是在UICamera脚本绑定的对象或子对象中,并且该对象具有Box Collider组件。

如下图所示,项目的结构如下。点击按钮后头像消失!Button  background是按钮背景图像,它是由精灵组成。Label是标签框,可以写入文本内容。

NGUI继续深入吧!

补充:

最新的NGUI版本发现UIAtlas的作法已经和以前的不一样了,这里补充一下吧。

切记!一定要先选择需要制作UIAtlas的所有图片。如图所示,首先在Project视图中用鼠标选中所有的图片,接着在导航菜单栏中选择NGUI ->Open-> Atlas Maker 。

如果不先选择图片,直接点击Atlas Maker的话,那么你的UIAtlas中就不会有任何精灵了。这里一定要切记!!!然后可以看到刚刚我选择的3张图片已变成精灵添加入UIAtlas中。

继续点击Create完成创建。点击sprite下拉按钮即可看到所有的精灵文件。如下图所示,新版的NGUI会帮我们把所有贴图合并在同一张图片上,宽高都是2次幂这样就很好的避免图片尺寸2次幂比例的问题。

精灵合集图片生场完毕后,你也可以把之前的单张图片删除掉。都不影响精灵的使用。

NGUI之学习制作简单例子(一)相关推荐

  1. openlayers摸爬滚打 3.图层layer和feature的学习和简单例子

    使用openlayers创建地图使用new ol.Map({...}); 其中有参数layers:地图图层,openlayers允许有多个图层,且可重叠在一起,上面的图层覆盖下面的图层,具体的laye ...

  2. RSA加密学习的简单例子

    在RSA中,最大值(称为max)由随机挑选的两个素数相乘而得.公钥和密钥在0和最大值之间挑选(称为pub和priv).为了加密一个数字,让这个数字自己乘自己pub次,并确保当乘积大于最大值时能够回折( ...

  3. 甘教课标版小学生计算机课,测评:《第6课 制作简单的表格教案》小学信息技术甘教课标版五年级上册教案4696(2)...

    5.如果应改变表格的长度跟高度,则把鼠标移到表格的竖线和横线上,当鼠标变成"|"和"="时,按住滑鼠左键,拖动鼠标,即可拖动半径和高度. 6.在表格中输入火车时 ...

  4. 使用UE4制作简单的局域网对战小游戏

    原帖地址:https://arcecho.github.io/2017/04/28/使用UE4制作简单的局域网对战小游戏/ 大多数文章都是只讲到大致的UE4网络的概念,并未涉及实际使用.事实上在使用的 ...

  5. Unreal Engine 4 系列教程 Part 5:制作简单游戏

    原文:How to Create a Simple Game in Unreal Engine 4 作者:Tommy Tran 译者:Shuchang Liu 在本篇教程中,你将学习制作一个第一人称动 ...

  6. 贝叶斯模型的一个简单例子及python实现

    目录 1. 前言 2. 问题描述 3. 贝叶斯定理 4. Bayes engine: scalar implementation 5. Bayes engine: vectorization 6. 测 ...

  7. java 国际化例子_JavaSE 国际化 简单例子

    ①在src下添加两个文件: base_zh_CN.properties Test=\u8fd9\u662f\u4e2d\u6587 base_en_US.properties Test=english ...

  8. python爬虫图片-如何用Python来制作简单的爬虫,爬取到你想要的图片

    原标题:如何用Python来制作简单的爬虫,爬取到你想要的图片 在我们日常上网浏览网页的时候,经常会看到一些好看的图片,我们就希望把这些图片保存下载,或者用户用来做桌面壁纸,或者用来做设计的素材. 我 ...

  9. C#操作MySQL数据库的简单例子

    其实很简单,但是我在网上找的时候却找不到有用的信息,奇怪. 到这里下载驱动 http://www.mysql.com/products/connector/ 下载的包里面有使用的例子. 需要具备的知识 ...

最新文章

  1. 三本毕业后,我进入了世界五百强
  2. ssh中exit命令退出远程服务器_解决Linux关闭终端(关闭SSH等)后运行的程序或者服务自动停止...
  3. Ajax搜索结果页面下方的分页按钮的生成
  4. 构造函数必须没有代码
  5. selenium自定义find_element
  6. (65)FPGA面试题-状态机编码选择原则?
  7. 60-420-020-使用-存储过程-使用存储过程和函数插入大数据量
  8. 经济师计算机考试取消,2019年经济师考试计算机机考答题要求及说明
  9. robotframework接口测试初探1
  10. 不想用宝塔面板建站,如何手动搭建LAMP环境安装wordpress
  11. JQuery input file 上传图片
  12. MySQL优化(二)
  13. 2010年程序员的最后一天!
  14. win10安装jdk
  15. 有人在研究arroundme 吗,一个开源的php社会化网络程序
  16. C++字符串操作函数strstr,strcmp,strlen,strcpy,strcat,strok
  17. 微信公众号之错误返回码
  18. Beta分布(Beta Distribution)
  19. 【Paper】A Comparative Evaluation of Unsupervised Anomaly Detection Algorithms for Multivariate Data
  20. 优化算法(一):牛顿法与拟牛顿法

热门文章

  1. java实现初始化三角形数组_Java 数组、多维数组,动态、静态初始化,数组JVM内存模型分析...
  2. 提高工作绩效的三大方法
  3. vue资料整理: scss 是什么?在 Vue.cli 中的安装使用步骤是?有哪几大特性?
  4. 建立在灰度共生矩阵理论知识的基础之上,利用skimage提取数字图像的纹理特征
  5. Flutter SocketException: OS Error: No route to host, errno = 113, address = XXX
  6. php 截图插件下载,GoFullPage插件下载
  7. 解决win10启动提示页面文件配置问题的故障
  8. 【合宙ESP32C3】DHT11温湿度传感器
  9. Spark源码性能优化案例分析
  10. [软件评测第六期]搜狗浏览器