关于Unity中的NGUI和UGUI

用Unity开发2D游戏,有三套关系

1.GUI:Unity本身的对象

2.NGUI:以前在Unity中广泛来做2D的,是第三方的包,需要安装

3.UGUI:Unity5.X后,Unity找到NGUI的作者,开发了UGUI,变成内置于Unity中的包,官方主推

所有的元素都在Unity的UI工具栏

3D做2D游戏的方法:

1: 使用正交摄像机;
2: 使用透视摄像机,将2D元素移动到合适的距离。
例如设计分辨率为 960x640, 得到在3D世界里面一个图片的大小w*h米,将这个图片移动到一定的距离使得正确显示出来
3: tag(视角*0.5) = (h/2) / zeye摄像机到精灵的距离; zeye摄像机到精灵的距离= h / (2 * tan(30));

  960*640的zeye值大约是5.15,也就是要把Image的Z轴设置成5.15,这样才能把Image刚好覆盖整个Game视图屏幕

1.创建一个2D精灵

2.把Texture Type改为Sprite

3.这时候会出现一个Pixeis Per Unit表示多少像素为一米   

4.把图片拖进Sprite属性

5.旋转直接修改Inspector的Z轴参数

6.缩放X,Y,比例为Z轴标准缩放比例

UGUI

底下有一个

1.一个Canvas管理所有的子UI节点:创建的时候会自动创建一个EventSystem节点,用来专门管理事件。如果直接创建一个Text,系统也会自动帮我们创建一个父Canvas节点和EventSystem节点

2.控件(Button,Label)

3.事件响应

Canvas节点,有四个组件

1.Rect Transform组件:不能改变,一创建就自动的组件,而且继承自Transform组件

2.Canvas组件:Render Mode:(1)Screen Space (overlay):自适应屏幕空间,覆盖在屏幕最上面,像电视机的菜单一样,总是在最上面 。

                (2)Screen Space (Camera):在没有设置Camera属性的时候,和第Screen Space (overlay)一样。

                (3)World Space:等于用手动设置Scale,等于之前3D做2D游戏的手动方法。使得2D和3D节点很好地融合在一起。

         Plane Distance:2D和3D的遮挡关系,可以把3D游戏弄的远远的,或者近近的。

3.Canvas Scaler组件:就像上面的缩放X,Y,比例为Z轴标准缩放比例

           UI Scale Mode:(1)Content Pixel Size:窗口多大就显示多大的Image节点,不会缩放节点全部显示。

                   (2)Scale With Screen Size:按照屏幕来进行缩放

           Match:不同的分辨率转换的时候的X,Y的转换因子大小,比如960*640转800*480,X,Y的比例缩放因子设置。

Image节点直接点击Set Native Size就会让Image节点自适应在屏幕上,全部显示。

Imgae组件是无交互式的组件,可以设置颜色,也可以挂材质球(但是只适用于Screen Space (overlay)),设置贴图属性,preserve aspact保持缩放比。

时间: 2024-12-29 04:15:22

关于Unity中的NGUI和UGUI的相关文章

Unity中关于NGUI的知识点

UICamera用于处理NGUI中的手势识别(单击.双击.拖拽) **Sprite(精灵)的创建方式:create->Sprite 创建完精灵之后,指定图集(Atlas),然后为Sprite指定图片.Sprite是图集中的一张小图. 特别提醒:千万不要试图通过缩放控件来调整控件的大小,要尽量保证控件的缩放值为Vector.one.通过调整控件的Size值改变大小. **Label 文字标签,用于显示文字.创建方式Creat->Label 需指定NGUI  Font字体 参数说明: Modifi

关于Unity中的NGUI精灵

NGUI精灵实例 1.创建Unity项目工程和文件目录,保存场景 2.创建一个精灵NGUI---->Create---->Sprite,发现它的UI Sprite组件的贴图属性只支持Atlas图集,所以要把纹理图片先做成图集才能放进Sprite里面 3.制作一个图集NGUI---->Open---->Atlas Maker---->(new)---->在Project视图里面选择要打包为图集的纹理贴图,会自动加到atlas名单里---->Create---->

关于Unity中的NGUI字体

NGUI字体类型 1: UIFont字体,UIFont类实现的2: TTF动态字体的使用3: BBCode的特殊字体的使用4: NGUI字体制作;5: BMFont字体制作和艺术字体的制作;6: UILabel的使用 NGUI---->open---->Font Maker,字体文件的制作工具 Generated Bitmap:产生位图,或者叫艺术字,基于图片的文字 Imported Bitmap:导入位图,针对于用UIFont,或者是showBox(一些制作艺术字的工具) Dynamic:动

Unity NGUI和UGUI与模型、特效的层级关系

目录 1.介绍两大UI插件NGUI和UGUI 2.unity渲染顺序控制方式 3.NGUI的控制 4.UGUI的控制 5.模型深度的控制 6.粒子特效深度控制 7.NGUI与模型和粒子特效穿插层级管理 8.UGUI与模型和粒子特效穿插层级管理 写在前面 这篇笔记是整理了之前做的记录,在做项目的过程中,遇到了各种各样的界面穿插问题,界面层级混乱,比如,手机卡了或点快了,就导致两个界面相互交叉.对于界面,这应该算是一个很严重的bug,很大部分原因是整个UI框架没有从整体上考虑这个,后来决心弄清楚层级

Unity中2D和UGUI图集的理解与使用

图集 什么是图集? 在使用3D技术开发2D游戏或制作UI时(即使用GPU绘制),都会使用到图集,而使用CPU渲染的2D游戏和UI则不存在图集这个概念(比如Flash的原生显示列表),那么什么是图集呢?准确的说法图集是一张包含了多个小图的大图和一份记录了每个小图id.位置.尺寸等数据的数据文件,一个图集应该对应两个文件,当然也有人把数据集成到图片中,导致看起来只有一张图片(参考自DragonBones的做法). 为什么要用图集? 在GPU已经成为PC.手机等设备的必备组件的现在,把所有显示的绘制操

NGUI在Unity中因更改窗口区域而出现Bug的处理

最近,在Unity5.0.1中遇到了NGUI中的一些BUG问题,比如,你用NGUI开发进行拖拽Sprite 的功能,或者在一些Lable上使用了dynamic font, 然后把它编译成可在PC上运行的exe可执行 文件 (记得 Player Settings的Resolution中勾上Resizealbe Window),  当它运行时,这时你就 会发现问题来了,比如打开时是720*480大小的窗口区域,然后你通过拖拽窗口边界,或者直接 进行窗口最大化放大,这时你会发现UI Root中的Spr

关于Unity中NGUI图片精灵响应鼠标的方法

我在Unity里做NGUI的时候发现一个问题. 在Unity2D场景当中,一个精灵图片只要加上了Box Collider或者Box Collider2D,就可以相应OnMouseEnter和OnMouseExit事件,而到了NGUI里就不能响应了. 这真是一个大坑 虽然说NGUI提供了按钮组件,但是如果我们想要自己定制一个按钮的话,失效的那两个事件是不可或缺的. 在网上找了很久,我依旧没能找到相关问题的回答,是的,似乎很少有人碰到这个问题(难道是我新手的原因?). 故私再次记录下我的解决方法.

将Unity中的世界坐标转换成NGUI中的坐标

将Unity中的世界坐标转换成NGUI中的坐标,比如可用于自制血条等.代码如下: 1 using UnityEngine; 2 using System.Collections; 3 public class Healthbar : MonoBehaviour { 4 public GameObject TargetObject; //目标物体.这里是指Cube 5 public Camera worldcamera; //世界相机. 6 public Camera guiCamera; //U

【学习中】Unity插件之NGUI 完整视频教程

课程 章节 内容 签到 Unity插件之NGUI 完整视频教程 第一章 NGUI基础控件和基础功能学习 1.NGUI介绍和插件的导入 6月29日 2.创建UIRoot 6月29日 3.学习Label控件,显示文字 6月29日 4.学习Sprite创建精灵,显示图片 5.学习Panel面板,控件容器 6.创建Button按钮,使用脚本监听按下 7.创建图集Atlas 8.切图SlicedSprite九宫切图 9.dynamicFont动态字体制作和显示 10.widget属性,pivot,dept