NGUI 笔记】的更多相关文章

1.动态加载Atlas,并用NGUITools添加Sprite UIAtlas MyAtlas = Resources.Load("MyAtlas", typeof(UIAtlas)) as UIAtlas; GameObject bagBox = GameObject.Find("BagBox1"); NGUITools.AddSprite(bagBox, MyAtlas, "start"); NGUITools添加Sprite…
来个前言: 作为一个U3D程序员,自然要写一写U3D相关的内容了.想来想去还是从UI开始搞起,可能这也是最直观同时也最重要的部分之一了.U3D自带的UI系统,也许略坑,也没有太多介绍的价值,那么从今天开始就记录一下主流的UI插件-NGUI吧. NGUI版本: v3.6.8 学习笔记一 假定大家都已经将ngui导入到了项目中,这里需要注意,插件(.package)的存放路径不能有中文,否则会导致解压失败. 导入之后可以看到几个文件夹咯,Editor,Examples,Resources,Scrip…
NGUI学习笔记汇总,适用于NGUI2.x,NGUI3.x 一.NGUI的直接用法 1. Attach a Collider:表示为NGUI的某些物体添加碰撞器,如果界面是用NGUI做的,只能这样添加.(注:用Component添加无效). 2. Attach an Anchor:表示为该物体添加了UIAnchor脚本,作用是避免像素偏移的问题 3. Attach UIStretch:表示为该物体添加了UIStretch脚本,提供缩放功能 4. Make Pixel Perfect:表示自动为你…
上次笔记实现了游戏商城的UI界面,没有实现动态数据绑定,所以是远远不够的.今天采用NData来做一个商城. 如果你之前没看过,可以参考上一篇博客   NGUI 学习笔记实战——制作商城UI界面  http://www.cnblogs.com/chongxin/p/3876575.html 一.NData介绍以及优点        大体来说NData就是一个NGUI 的 MVVM 框架插件,如果你问我什么是MVVM,我也只能说类似于MVC,至于什么是MVC………… 说道NData的优点,我们先来看…
http://www.cnblogs.com/chongxin/p/3876575.html Unity3D的uGUI听说最近4.6即将推出,但是目前NGUI等UI插件大行其道并且已经非常成熟,所以我们还是先看眼前吧. 一.实现思想 商城的功能是很多游戏都拥有的,按下一个界面按钮,弹出一个窗体. 然后是商城中的商品可以拖动,既可以用手,也可以用滑条等等,至于点击购买就不单单是UI层的事了.等到实现NDate的时候再进行讨论. 二.实现背景 1.NGUI->Open->Prefab tool b…
在Unity3D中可以使用自带的Animation制作任意形式的动画,不过我们这篇笔记主要是学习和使用NGUI提供的Tween动画.NGUI提供的Tween库功能较为简单,主要是用来实现NGUI自身需要的一些缓动效果,同时我们也可以使用NGUI的Tween来实现一些简单的动画效果. Tween组件 我们选中添加到舞台的任意UI组件右键就能看到添加Tween的菜单,如图: 我们通过选择添加对应的缓动组件就可以添加对应的缓动效果了,下面先简单的看一下NGUI提供的缓动组件的功能: Alpha:透明度…
学习NGUI一直断断续续的,目前打算做一个总结的笔记. 我使用的是比较老的3.6.0版本. 1.使用NGUI,需要开启“Edit”->“Project Settings”->“Physics”里的“Raycasts Hit Tiggers”选项,否则无法使用交互系统,当前该选项是默认开启的. 2.NGUI控件要添加 Box Collider 组件才可以接受交互事件: 3.如果要让按钮上的文本也可以根据按钮的状态改变颜色,可以再在按钮上添加另一个Button组件,然后把组件的Target设置为文…
1.NGUI中UI的深度关系(新版NGUI 3.9): 在同一个Panel中,不管同不同Altas,各个UI的顺序受Depth影响 在不同Panel中,UI的顺序受Panel的Depth影响 例如Panel_1里有个Button,Panel_1的Depth为1,而Panel_2的Depth为0,则不管Panel_2中的UI的Depth怎样,永远显示在Button之下 旧版的复杂关系在新版取消,Z轴也取消,现在不可通过Z轴设置顺序了. 2.[NGUI]如何动态添加回调函数并添加参数: // 创建新…
原地址:http://www.xuanyusong.com/archives/3088 这两天一直在研究CSLight,目前Unity热更新的方式有两种,一种是ulua这个网上的例子已经很多了.还有一种就是CSLight.其实我更希望CSLight可以趋向成熟,因为它的语法就是C#,但是有些C#的标准语法用不了.这两天我学习的做了一个例子,也把我遇到的坑记录一下. 1.在github上下载CSLight,当我把DLL拖进项目的时候会报错.原因是CSLight的dll和NGUI的冲突了,所以我直接…
所有的Sprite使用前,得先准备个图集,然后选择里面的图片进行填充 UISprite里面有几个属性做个笔记: Type: Smple:除了显示内容从图集里面获取外,其他都和Texture一样的绘制 Sliced:这个模式支持九宫格拉伸,让四个角落的图片不变型,点击Sprite右侧的Edit按钮可以进行Sprite数据的编辑,设置Border的值即可. Tiled:瓦片填充,会平铺进行填充 Filled:这个主要用来做技能CD.进度条等用.FillDir设置填充的模式(360度扇形,水平,垂直等…
目前,UGUI问世不过半年(其随着Unity 4.6发布问世),而市面上商用的产品,UI控件的至尊为NGUI:影响力和广度(可搜索公司招聘Unity 3D,常常能看到对NGUI关键词). NGUI虽然不是Unity 官方原生的,但以其强大的能力和友好的操作性,成为了事实上的王者—-无他,OnGUI太挫了. 通过导入自定义包,会出现如下的截图–这里我使用的是NGUI V3.6.8版本. 在其官方demo中,这个demo给我留下了非常酷的印象(右上角NGUI的logo,好像电影中维京人的帽子?):…
动态加载UI 我们进入一个场景后,如果将这个场景所有可能用到的UI都直接放在场景中做好,由于要在进入场景时就部署好所有的UI对象,那么当UI对象较多时会碰到的问题是:1.初始化场景会产生非常明显的卡顿.2.所有UI都在场景中导致占用大量的内存. 所以我们需要对UI组件进行动态加载和销毁,当需要打开指定的UI时,动态的创建出这个UI对象,而当关闭这个UI对象之后,可以对其进行销毁从而释放出内存. 将UI制作成一个预制件 我们可以在场景中制作好一个UI,然后将其保存成一个预制件后从场景中移除,然后我…
我们开发移动端游戏的时候,一般都会选择Constrained/FixedSize的缩放模式来保证图片在不同的分辨率下相对于屏幕的尺寸保持一致,但是对于屏幕自适应来说,这还是不够的,不同的手机存在不同的高宽比,所以需要引入相对位置的概念. NGUI作为一款成熟的UI插件,为我们提供了成熟的屏幕自适应技术. Anchor组件 我们可以创建一个Anchor组件到舞台,Anchor即锚点,其作用是可以指定为摄像机的9个点(分别是:上左.上.上右.左.中.右.下左.下和下右)为其锚点,当摄像机的尺寸变化(…
精灵(Sprite).图集(Atlas)和贴图(Texture)的区别 图集:由多张小图拼合而成的一张大图,其好处是降低DrawCall的次数.减少载入内存的次数和方便管理同一类型的小图.一般图集都会携带一个配置文件用来记录每张小图的名称和区域信息等. 精灵:图集上的一个小图即为一个精灵. 贴图:比如游戏中的背景图等较大的图片,如果不作为图集的一部分打包,而是直接使用,那么可以称为一个贴图. 标签(Label)和字体(Font) 标签:用来显示文本的控件. 字体:NGUI中存在两种字体. 静态字…
Anchors 的作用 类似Android里面的.9格式图片的功能, 边框可以随着文字变大而变大. 实现方法: 用NGUI 创建一个Sprite, 命名为TextBg, 一个Label, Label的Overflow属性设置为Resize Freely. 将TextBg的Anchors 的type设置为Unified, Target设置为Label:…
下面我们来看看游戏UI开发中比较核心的开发,我称为列表开发,比如背包和各种形式不一的列表等,下面我们来看几个具体的样例:   基本上就是一些重复的制作好的多个UI控件进行排列,同时可以支持滚动,当然,高级一点的话也可能需要支持拖拽操作等. 下面我们来学习一下这些功能该如何使用NGUI实现,最后再给出一个具体的示例. 基础控件 NGUI已经帮助我们设计好了相关的组件,所以我们要实现上面的效果不需要从头开始,只要学会使用NGUI提供的相关的脚本即可,非常简单. ScrollView 即滚动视口组件,…
Localization system(国际化系统) 实现的就是用户选择不同的语言,切换我们游戏文字的显示. 一:创建一个CVS文件.可以用Google Docs, Excel等软件工具. 我这里用的Excel.建立如下: 第一行是抬头,分别是关键字,语言分类名称. 然后另存为.CVS即可,文件保存的名字必须为Localization 保存文件内容如下: 二:导入cvs文件到项目的资源中. 切记一定要在项目的资源文件夹中创建一个Resources文件夹, 然后将cvs文件导入其中,如果不导入Re…
一:在Scene中右键创建UI组件. 首先要确定NGUI中的红框能看见,我的就是之前无法现实红框,所以右键无法新建UI组件, 原因是:UIPanel没启用. 启用方法: 启用前和启用后NGUI界面对比: 还有两个步骤,否则还是不能右键UI组件: 选择UI Root组件: 选择移动组件: 最后显示画面如下:…
属性说明 Overflow: ShrinkContent : 如果文本超出文本框宽度,会自动缩小文本size,使其显示完整 ClampContent : 文本大小固定,超出文本框的部分不会显示,也不会自动换行 ResizeFreely   :  文本框宽高自适应文本的宽高 Spacing: x:文本字符水平间隔 y:文本字符垂直间隔 MaxLines: 值为0时,行数不限:值大于0,为最大行数 Encoding: 是否支持表情和表情颜色,选中之后会出现Symbols枚举 None:不支持表情 U…
原地址:http://blog.csdn.net/lzhq1982/article/details/18793479 本系列文章由Aimar_Johnny编写,欢迎转载,转载请标明出处,谢谢. http://blog.csdn.net/lzhq1982/article/details/18793479 先上张图,自己做的一个demo. 这里的人物头像和血条是在3d世界生成的,所以有真正的纵深感和遮挡关系,废话不多说,看我是怎么实现的. 第一步,先在UI Root里制作头像和血条. 这个制作步骤基…
Property Binding:用于绑定两个组件,然后可以将一个组件的信息发送给另一个组件. 效果图如下: 一:使用步骤 1.建立一个Sprite 2.建立一个Label 3.为Sprite添加Property Binding组件 4.设置参数 Source:将Sprite拖进去,方法选择UISprite.width. Target:将Label拖进去,方法选择UILabel.text. Direction:有三个选项,用于表示Source和Target的数据传递方向. Update:更新的时…
UITable:这个控件可以方便的排列其他小组件,并能控制小组件之间的距离. 效果如下: 这个控件的效果和UIGrid很相似,区别是UIGrid能控制每个小组件的大小,而这个 控件控制的是小组件之前的空隙.…
UIGrid:这个组件可以轻松的让你排列你的组件,并且在运行或是编辑的时候都可以. 效果图如下: 一:使用步骤 1.选择一个panel然后右键Create——Grid 2.为Grid创建几个子Sprite,位置随便放 3.然后运行,效果如下 4.UIGrid组件分析 其中的右上角的小齿轮点击开,里面的Execute,点击即可在编辑的状态下排列这些Sprite了. Arrangement:排列的方向. Sorting:排列的顺序. ————None:没有顺序. ————Alphabetic:按字母…
UIInput:这个组件可以用于创建输入框和编辑文本. 效果图如下: 一:使用步骤 1.首先创建一个背景,可以用Sprite也可以是Widget. 我这里使用的是空白的Widget 2.为其添加一个Label组件 3.为Label添加以下组件 4.配置UIInput组件 Label:用于绑定的Label,即输入框. Starting Value:起始显示的值. Saved As:内容指定保存的键值. Active Text Color:文本框激活的时候显示的颜色. Inactive Color:…
UIPopupList:将这个组件添加到Button上,即可构建一个下拉列表. 效果图如下: 一:使用步骤 1.首先创建一个Sprite作为button. 2.创建一个label,用于显示当前选择的选项. 3.为Sprite添加以下组件 4.配置UIPopup List组件 Options:设置下拉列表中的元素. Default:默认显示的值. Position:列表的显示位置,上或下. Localized:这个和cvs可以集合一下使用. Atlas:设置效果贴图. Font:设置字体信息. O…
UIScrollBar:这个组件可以用于创建滚动条. 效果图如下: 一:使用步骤 1.这个组件和UISlider很像,也是由三部分组成. 2.首先创建一个Sprite用于组件的背景色. 3.创建第二个Sprite用于组件的滚动条,注意这个Sprite的宽度要和第一个Sprite一样. 4.创建一个Label,用于显示组件滚动的百分比. 5.为第一个Sprite添加两个组件. 6.设置UIScroll Bar组件参数. Value:设置起始值. Size:设置第二个Sprite所占的百分比. Al…
UISlider:用于创建简单的滑动块和进度条,并且可以添加一个拇指按钮. 效果图如下: 一:使用步骤 1.从上面的效果看出,这个工具由四部分组成:背景图,进度图,进度lable显示,拇指按钮. 2.首先在UI Root的Scene中右键建立一个Sprite,用于背景图. 3.用相同的方式建立第二个Sprite,用于进度展示. 4.用相同的方式建立第三个Sprite,用于拇指按钮. 5.建立一个Lable,用于显示当前的进度百分比. 6.然后选择第一个Sprite,即背景图,为其添加两个组件.…
UIToggle:切换,从名字就能知道这个组件能做什么.这个组件有两种状态ON/OFF.可以用于创建checkboxes, tabs, radio button groups. 效果展示: 一:使用步骤——创建一个checkboxes 1.首先在UI Root下建立一个Sprite,设置一张贴图,当作按钮的背景. 然后为其添加碰撞组件和Toggle组件 2.为第一个Sprite建立一个子Sprite,设置一张图片,当作选中的标识. 将其调整到适当的位置. 3.选择第一个Sprite的UITogg…
前言:用于接受点击,悬停,触摸等事件.UIButton还有重要的用途,就是改变控件不同状态下的颜色. 一:使用方式: 1.在UI Root中右键创建一个Sprite 2.为其添加一个碰撞组件,就添加Box Collider吧. 3.添加完碰撞组件,就可以添加UIButton了.任何包含collider组件的weight都可以添加UIButton组件. UIButton组件: 1.Colors:用于设置按钮不同状态的颜色. 2.On Click:用于设置点击事件的接受. 二:UIButton使用…
前言:有的时候Panel会被截取,里面的内容就不能显示完整,所以需要为其添加 scroll view组件. 一:将Panel放进一个scroll view只需要简单的3步: 1.首先在UI Root下创建三个Sprite并为其设置不同的贴图. 2.在UI Root下创建一个panel,然后在Scene界面中的panel上右键鼠标,在弹出的菜单中选择Attach -> Scroll View. 3.然后在Hierarchy中将创建的三个Sprite拖动到panel下. 3.通过拖动紫色按钮,即可改…