本文的重点就是要将NGUI把多张图片打成一个图集(Atlas)的原理和过程研究下,学习下Unity提供的api和NGUI写的功能以及设计思想. (原文链接) 其它链接:NGUI所见即所得之UIRoot   NGUI所见即所得之UIWidget , UIGeometry & UIDrawCall   NGUI所见即所得之UIFont , UIFontMaker   NGUI所见即所得之UISprite & UILabel   NGUI所见即所得之UICamera   NGUI所见即所得之UI…
NGUI所见即所得之深入剖析UIPanel,UIWidget,UIDrawCall底层原理 By D.S.Qiu 尊重他人的劳动,支持原创,转载请注明出处:http.dsqiu.iteye.com 之前项目中用的NGUI的版本是3.0.7 f3,开始的时候感觉没有什么问题,直达最近项目UI的完成度比较高时,就突然出现掉帧很严重的现象,即使只有一个UI打开(其他都是active = false的情况下),打开profier,发现UIPanel LateUpdate 竟然占了CPU使用率的50%左右…
这是我去搜狐畅游面试时,面试官问的一个问题.问NGUI的机制原理是什么?就是这个插件是根据什么写出来的.当时没答上来,下面是我从转载过来的,可以研究研究. 之前项目中用的NGUI的版本是3.0.7 f3,开始的时候感觉没有什么问题,直达最近项目UI的完成度比较高时,就突然出现掉帧很严重的现象,即使只有一个UI打开(其他都是active = false的情况下),打开profier,发现UIPanel LateUpdate 竟然占了CPU使用率的50%左右,这太恐怖了,虽然之前看到过有吐槽NGUI…
原文:http://www.iteye.com/magazines/130 博客是记录学习历程.分享经验的最佳平台,多年以来,各路技术大牛在ITeye网站上产生了大量优质的技术文章,并将系列文章集结成专栏,以便读者能够更便捷.更系统地浏览学习,这些可称之为“编程精华资源”. 为了便于读者更好地查阅,本文将ITeye中的这些精华资源进行了整理分类,你可以通过文中链接跳转到相应的专栏,希望技术大牛们的这些不可多得的经验分享,能够为你的技术学习.开发之路带来一些帮助. 在此首先要感谢分享这些知识的各位…
NGUI提供了很方便的UIAtlas,其主要作用是改进DrawCall,把众多图片整合在一张贴图上,由于UNITY3D简单易用的好处,所以只是用原生的GUI很容易忽视DrawCall的问题,所以NGUI为了改进,才有了UIAtlas.当然NGUI还做了很多优化. 这里主要还是介绍如何利用UISprite来动态的加载图片.NGUI所提供的UIAtlas虽然好用,但只能在Editor内生成贴图和prefab以供UISprite使用.为了能够让游戏资源与游戏本体尽可能的分离,特别是游戏资源需要动态更新…
NGUI出现Shader wants normals, but the mesh UIAtlas doesn't have them,没有网格法线,打开UI Root上 UIPanel组建上的 Normal选择对勾就能够了…
---恢复内容开始--- Unity3d通用工具类之NGUI图集分解 由于最近需要一些美术资源吗,但是无奈自己不会制作UI,所以就打算去网上的项目中直接找几张可以使用的贴图资源. 但是发现这些资源已经被NGUI自带的打包图集工具打包好了,而且原小贴图也已经全部删掉了,只剩下一个预制物. 那么这个预制物里面包含什么呢: 1.一张大图集贴图 2.大贴图的材质球 3.挂上UIAtla脚本的预制物 那么重点来了,我们该如何获取这张大贴图中的小贴图呢? 这里我写了个小插件,我直接在NGUI源代码里面改:…
static public float soundVolume该属性是全局音效播放音量,按照文档说是用于NGUITools.PlaySound(),那也就意味着我的游戏如果用NGUITools.PlaySound()管理游戏中的音效,同时也可以用于产品音效控制. static public bool fileAccess该属性用于检测是否可以访问用户磁盘 static public AudioSource PlaySound (AudioClip clip)static public Audio…
NGUI打开界面太慢了,起初一直以为是unity的问题,最近经过我的全面测试我发现这和unity没有关系.一般一个比较复杂的界面大概需要150个GameObject  或者 UISprite .我用NGUI直接载入发现竟然需要250多毫秒,仅仅只是两张小图.同样的GameObject 我用unity2d的Sprite载入只需要70多毫米,可见Unity2d的效率要比NGUI高多少..我可能说的不完全对,因为U3D是闭源的,我只能猜测. 在普及一下基础知识.       C#   1 2 Game…
在NGUI中,通过创建图集及引用图集,实际使用时指定引用图集而非具体图集本身,可以创建多语言,或高配低配版本资源包. NGUI Atlashttp://www.cnblogs.com/answerwinner/p/3848074.html UI AtlasAtlas Type Reference You can have one atlas simply point to another one. This is useful if you want to be able to quickly…
打开 Atlas Maker:NGUI -> Open -> Atlas Maker 新建一个 "Icon Atlas" 生成3个东西:…
本文链接地址: Unity3D NGUI动态创建按钮 本例仅以熟悉NGUI组件功能为目的,想快捷简便的创建按钮或其它游戏物体请参考 “Unity3D 动态实例化Prefab” 以动态创建服务器列表为例. public UIAtlas mAtlas; public UIFont mFont; public string mSriteName; public GameObject Playerlist; /// <summary> /// 动态加载一个NGUI按钮 /// </summary…
在NGUI中有些图片我需要动态进行变更或者加载,怎么办? 首先在项目中创建一个Resources目录,接着把需要的图片放在这里面,可以有子文件夹么?当然可以,文件结构很重要哦~ NGUI加载图片的方法其实是加载NGUI生成的atlas,大家可以看看NGUI的图集文件(一个material.一个prefab,一张图集),我们要做的就是动态加载这个prefab(它有UIAtlas属性),然后通过图片名称更改图片. 我这里那UISprite来说明,我是这样做的: UIAtlas tu = Resour…
http://blog.csdn.net/monzart7an/article/details/23878505 链接: http://game.ceeger.com/forum/read.php?tid=5517 之前也看了不少童鞋谢了关于NGUI的scroll view的制作下面我写下自己的制作过程以及心得,希望对童鞋们有所帮助.1.首先建立一个960*640的背景参考http://game.ceeger.com/forum/read.php?tid=5314效果如图:先借用下三国杀的背景图…
NGUI全面实践教程(大学霸内部资料)   试读文档下载地址:链接:http://pan.baidu.com/s/1jGosC9g 密码:8jq5 介绍:NGUI全面实践教程(大学霸内部资料)本书是国内NGUI最新教程,以全新的3.8.0为基础,讲解NGUI的使用.内容不仅全面该函NGUI的各个组件,还详细讲解各项高级功能,以及自带工具. 目  录 第1章  学习NGUI前的准备 1 1.1  NGUI的购买/下载和导入 1 1.1.1  找到并了解NGUI的相关信息 1 1.1.2  导入NG…
1,button的创建:2,button组件的基本属性:3,button的事件监听 原位地址:http://blog.csdn.net/dingkun520wy/article/details/50434520 1,button的创建 编辑器创建 代码创建 /// <summary> /// 动态加载一个NGUI按钮 /// </summary> /// <param name="panleMe">父节点对象</param> /// &l…
目录 1.介绍两大UI插件NGUI和UGUI 2.unity渲染顺序控制方式 3.NGUI的控制 4.UGUI的控制 5.模型深度的控制 6.粒子特效深度控制 7.NGUI与模型和粒子特效穿插层级管理 8.UGUI与模型和粒子特效穿插层级管理 写在前面 这篇笔记是整理了之前做的记录,在做项目的过程中,遇到了各种各样的界面穿插问题,界面层级混乱,比如,手机卡了或点快了,就导致两个界面相互交叉.对于界面,这应该算是一个很严重的bug,很大部分原因是整个UI框架没有从整体上考虑这个,后来决心弄清楚层级…
(以后,参考链接和作者将在文章首部给出,转载请保留此部分内容) 参考链接:http://www.narkii.com/club/thread-299977-1.html,作者:纳金网 比巴卜: 参考链接:http://game.ceeger.com/forum/read.php?tid=2852,作者:Unity圣典论坛 kuku小夭 动态添加和删除Sprite可以在很多地方用到,这里以实现显示技能CD时间来为例,CD的时间是以sprite来显示的,当然CD时间以文本显示更为合理,这里只是作为例…
上一次用UGUI实现了拼图小游戏,这次,我们来用NGUI来实现 实现原理 NGUI中提供了拖拽的基类UIDragDropItem,所以我们要做的就是在要拖拽的图片上加一个继承于该类的脚本,并实现其中的方法即可 public class DragOnPic : UIDragDropItem { protected override void OnDragDropStart () { base.OnDragDropStart (); } protected override void OnDragD…
之前做过一个流光效果(http://www.cnblogs.com/jietian331/p/4748644.html). 现将其改进一下,与NGUI结合起来,提供一个具有流光效果的组件:UIWalkLightSprite. 效果如图: 首先是此组件的源码,如下: using System; using UnityEngine; /// <summary> /// 具有流光效果的 UISprite. /// 注意: /// 1. 流光图片需命名为"Special_WalkLight&…
UISprite是可以使用代码动态切换图集的 using UnityEngine; using System.Collections; public class SpriteAtlasTest : MonoBehaviour { private UISprite _sprite; public UIAtlas atlas; public UIAtlas atlas2; // Use this for initialization void Start () { _sprite = GetComp…
原地址:http://blog.csdn.net/u011440375/article/details/9707491 因为最近工作用NGUI比较多,修改图集时还没原图,有时候需要把图集重新切割开来,用代码会比较方便,一下贴出主要代码 首先读取NGUI图集的信息 [csharp] view plaincopy UIAtlas mAtlas ; GameObject[] SelectedAsset=Selection.gameObjects; ) { mAtlas = SelectedAsset[…
原地址:http://blog.csdn.net/asd237241291/article/details/8499430 FastGUI是NGUI的一个扩展,所以必须要有NGUI才能使用.FastGUI主要功能是把PSD文件转为NGUI的Sprite.首先,我们看看PSD的要求 这是一个Button的PSD结构 选择脚本->浏览->打开FastGUI/PhotoshopPlugin/FastGUIExporter.jsx 选择Export Sprites或者Export WidgetsExp…
作者:EnigmaJJ 博客地址:http://www.cnblogs.com/twjcnblog/ 在Unity中使用NGUI时,为了减少draw call,我们会将美术用到的小图打成一张图集,如图:…
NGUI版本号:3.6.5 1.參见SZUIAtlasMakerRuntimeTest设置对应的值以上值须要提前设置好 2.没有检查是否atlas可以正确创建,自己可以改,增加返回值 3.代码都是在NGUI里面拷贝出来的,仅仅是进行修改,没有新代码 4.适用与那种从网上下图片,之后还不想用UITexture的人,可是还是建议用UITexture假设drawcall不是问题的话 5.自己以后更新按我的方式改改就能够 6.动态创建速度较慢,建议在游戏启动的时候执行 7.游戏时能够将创建的atlas保…
来个前言: 作为一个U3D程序员,自然要写一写U3D相关的内容了.想来想去还是从UI开始搞起,可能这也是最直观同时也最重要的部分之一了.U3D自带的UI系统,也许略坑,也没有太多介绍的价值,那么从今天开始就记录一下主流的UI插件-NGUI吧. NGUI版本: v3.6.8 学习笔记一 假定大家都已经将ngui导入到了项目中,这里需要注意,插件(.package)的存放路径不能有中文,否则会导致解压失败. 导入之后可以看到几个文件夹咯,Editor,Examples,Resources,Scrip…
效果预览 注:Cube上附着的绿色是我添加的粒子效果. 软件环境 NGUI 3.9.x Unity 5.1 x64 相关知识 RenderTexture RenderTexture是一种特殊的纹理,它是在运行时创建和更新. 文档:http://www.ceeger.com/Components/class-RenderTexture.html ScrollView ngui的一个滑动组件 UITexture ngui显示贴图组件 原理 用一个相机单独照射3D模型和粒子 ——> 把相机的图形映射到…
导入NGUI包后,菜单多出一个选项 "NGUI",选择其子选项 "options" -- "Reset Prefab ToolBar" ,在弹出的窗口 "Prefab ToolBar" 中,拖拽 "Control - Backgroud"  到Hierarchy窗口中.…
//原来写在其他博客上的东西,搬迁 预备知识: 要明确的三个概念: 设计分辨率:在编辑器上开发UI使用的分辨率.我们所有的UI都是在这个分辨率下设计制作的. 显示区域分辨率:设备上所显示的UI区域在编辑器中的分辨率. 屏幕分辨率:设备实际的分辨率. 已知设计分辨率,屏幕分辨率,求区域分辨率的计算方法 设置变量 设计分辨率 ContentWidth * ContentHeight,以下简写为 CW * CH 屏幕分辨率 width * height,以下简写 W * H 区域分辨率 TargetW…
效果: 思路: 1.算出正确的uv去采样过滤图,上一篇文章说的很明白了.Shader实例:NGUI图集中的UISprite正确使用Shader的方法 2.用当前血量占总血量的百分比来设置shader中的变量,来控制血条的裁剪. 实际操作中,在shader中声明一个uniform float _Factor 然后在C#脚本中,对这个变量进行设置,结果发现,界面上不能实时响应这个值,进行正确的裁剪. 那么我只好牺牲color的一个分量,比如设置g分量,shader中用g分量的值来对血条进行裁剪.最终…