NGUI工具使用示例
ngui用法

ngui用法
NGUI是一种强大的Unity UI系统,使用NGUI可以轻松地创建复杂的用户界面。
以下是NGUI的基本用法:
1.创建UI元素:在Unity编辑器中,通过拖拽NGUI的预设体(Prefab)到
场景中,可以创建UI元素。
预设体包含了UI元素的模板,包括布局、样式、交互等。
2.调整UI元素:选中场景中的UI元素,在Inspector面板中调整其属性。
例
如,可以设置文本框的文本内容、颜色、字体等,也可以设置滑动条的数值范围等。
3.布局UI元素:NGUI提供了多种布局方式,例如垂直布局、水平布局、网
格布局等。
通过设置布局组件的属性,可以将UI元素按照需要进行排列。
4.交互处理:通过编写代码或使用Event Trigger组件,可以实现UI元素的
交互处理。
例如,当用户点击按钮时,触发一个事件并执行相应的操作。
5.动画处理:NGUI支持对UI元素进行动画处理,包括颜色动画、位置动画、
缩放动画等。
通过编写代码或使用Animator组件,可以实现UI元素的动画效果。
6.样式定制:NGUI支持通过CSS样式表对UI元素进行样式定制,可以设置
字体、颜色、背景等样式属性。
7.事件系统:NGUI提供了一套事件系统,可以方便地处理UI元素的交互事
件。
例如,当用户点击按钮时,可以触发一个事件并执行相应的操作。
unity3D【NGUId的简单应用】

unity3D——NGUI的简单应用说明:Label:标签、Box:在标签外套个边框、Button:按钮、RepeatButton:按俩下激活事件、TextField :文本框、PasswordField:密码文本框、TextArea :编辑文本区域、Texture2D:图片的对象。
在Rect(左上角到屏幕上边的距离,左上角到左边的距离,Rect的高度,Rect的宽度)下面是简单NGUI的语法:using System.Collections;public class GUITest : MonoBehaviour {public Texture2D img;string str="请输入姓名";void OnGUI(){bel (new Rect(100,100,100,20),"Hello World!");//添加标签//bel (new Rect(100,150,100,100),img);//给添加的标签上图片GUI.Box (new Rect(100,100,100,20),"Hello World!");//添加盒子GUI.Box (new Rect(100,150,100,100),img);//给添加的盒子上图片GUI.Button (new Rect(100,100,100,20),"Hello World!");//添加按钮GUI.Button (new Rect(100,150,100,100),img);//添加按钮并加图片GUI.RepeatButton(new Rect(100,100,100,20),"Hello World!");GUI.Button (new Rect(100,150,100,100),new GUIContent("我有提示","恭喜你中奖了!"));bel (new Rect(100,100,100,20),GUI.tooltip);//在标签上显示恭喜你中奖了!str=GUI.TextField (new Rect(100,100,200,30),str);//添加文本并输出请输入姓名,加str是用户可以输入内容。
ngui toggle用法

ngui toggle用法
在NGUI中,Toggle是一种常用的UI组件,用于在界面上创建开关按钮。
Toggle组件的使用方法如下:
1. 创建Toggle组件:在NGUI菜单栏中选择“Create” -> “Toggle”,然后在场景中创建一个Toggle组件。
2. 配置Toggle属性:在Toggle组件的Inspector面板中,可以设置Toggle 的属性,例如Toggle的初始状态(选中或未选中)、颜色、字体等。
3. 关联脚本:如果要响应Toggle状态的改变事件,可以将一个脚本附加到Toggle组件上。
在脚本中编写代码,实现Toggle状态的监听和处理逻辑。
4. 设置Toggle事件:在脚本中,可以编写OnValueChanged方法来响应Toggle状态的变化。
当Toggle的选中状态发生改变时,会触发该事件。
以上是NGUI中Toggle的基本用法。
当然,具体的实现方式可能会根据不同的需求和场景有所不同。
如果您需要更详细的帮助,可以查阅NGUI的官方文档或寻求社区的帮助。
NGUI实例教程讲解之四ControlIerInput

NGUI教程NGUI官方实例—ControlIerInput讲解NUI官方实例—ControlIerInput哈,国庆到西塘和乌镇玩了三天,那个人多呀!还是回来写教程吧。
在NGUI插件中,你可以设置该GUI的输入方式,例如通过鼠标、键盘、手柄等方式来控制元素的选择。
在官方示例的Example4 – Input中,展示了屏蔽鼠标输入,改为通过键盘方向键来控制元件选择的功能。
该示例以前一个示例作为基础。
首先屏蔽鼠标事件。
选择UI Root(3D)下的Camera对象,在Inspector窗口中找到UICamera组件,把其中的Use Mouse和Use Touch关掉,如图所示:为每个GUI元件添加键盘监听组件,选择Button-Play,为其添加一个ButtonKey组件(Component->NGUI->Interaction->ButtonKeys),该组件中的Starts Selected表示gui的初始选择元件,Select On Up表示当前在你选择这个按钮之后,你按下向上键时,下一个选择的元件是哪个对象,Select On Down表示当当前在你选择这个按钮之后,你按下向下键时,下一个选择的元件是哪个对象,分别为这两个变量附上Button-exit和Button-option两个gui元件(注意,先必须分别给这两个元件添加上ButtonKeys组件,不然不能拖进去),如图所示:依次对Button-Exit和Button-Option添加上ButtonKeys组件之后,分别设置其Select On Up和Select on Down 变量。
最后,选择Button-Play元件,把Starts Selected勾上。
点击运行,可以看到,鼠标已经不起作用,而当你按下键盘上的上下键时,可以同样实现按钮的选择,在Option按钮上按下键盘上的回车键,可以实现鼠标点选的效果。
如图所示:接下来,打开Panel-option的enable,关闭Panel-Main的enable,同样为Panel-option中的各个元件进行类似的设置,此时应该注意这个组件的添加位置,如图所示:点击运行之后,你点击键盘上的左右键,会发现,滑动条虽然被选择了,可是没有显示出显示的状态。
NGUI全面实践教程

NGU U I 全(内www.d 全面实内部资料大学霸daxueba 实践料)践教程程前 言NGUI是一款Unity插件,可以帮助开发者快速的为游戏添加功能强大的UI界面。
在Unity 4.6版本发布之前,Unity内置的UI系统异常难用,因此NGUI在开发者中广受追捧。
NGUI发布于2012年初,发布者从版本1.08开始持续不断的将NGUI插件更新到现在的3.8.1版本(2015年3月23日的数据),其中经历了3次大的变革!使得NGUI插件的功能越发强大,使用起来也异常便捷,即使Unity官方在Unity 4.6中集成了最新的UI系统,也未能掩盖NGUI的光芒!最新版本的NGUI,是从版本3.6.0开始演变过来的,所以这期间各更新版本的差异只是体现在小功能的添加、修复和完善上的。
但是目前市场上流传的大部分NGUI资料,都在介绍NGUI 3.6.0之前的版本,而NGUI 3.6.0版本的变革使得这些资料显得异常过时,给大部分学习NGUI的开发者造成了学习上的障碍,也严重影响到了NGUI使用者的工作效率!本书选择直接从版本3.8.0入手,全面系统的介绍了变革后的NGUI!全书是围绕下面的组件类继承图展开讲解的,同时也考虑到了内容的相关性,相信此书能让读者快速、高效、全面的掌握NGUI!1.学习所需的系统和软件❑Window 7操作系统;❑NGUI 3.8.0;❑Unity 4.5.5及以上版本;2.学习建议大家学习之前,可以致信到xxxxxxxx,获取相关的资料和软件。
如果大家在学习过程遇到问题,也可以将问题发送到该邮箱。
我们尽可能给大家解决。
3.更多新技术如果想了解与Unity相关的更多新技术,大家可以关注我们的大学霸官网:,也可以关注本教程老师的博客:/mr_ahao。
本书结构体系图目 录第1章学习NGUI前的准备 (1)1.1 NGUI的购买/下载和导入 (1)1.1.1 找到并了解NGUI的相关信息 (1)1.1.2 导入NGUI (4)1.2 NGUI资源概述 (6)1.2.1 NGUI的使用示例 (7)1.2.2 NGUI源码 (7)1.2.3 版本介绍 (8)1.3 NGUI菜单概述 (8)1.3.1 快速设置UI对象的Depth属性 (9)1.3.2 快速创建常用的基础UI (9)1.3.3 快速赋予常用的UI组件 (10)1.3.4 快速添加补间动画相关组件 (10)1.3.5 快速打开NGUI提供的各种工具 (11)1.4 NGUI快捷菜单概述 (11)1.5 各重要组件类的继承关系(图示) (11)1.6 更合理的界面环境布局 (12)1.6.1 默认的布局方式 (12)1.6.2 修改布局的方法 (13)1.6.3 推荐的布局方式 (15)1.6.4 存储自定义布局 (16)1.7 NGUI常见的鼠标快捷操作方式 (16)1.7.1 改变UI对象的位置 (16)1.7.2 改变UI对象的角度 (17)1.7.3 改变UI对象的大小 (17)第2章基础UI组件 (19)2.1 全局UI缩放方式控制(UIRoot) (19)2.1.1 概述 (19)2.1.2 像素大小固定(Flexible) (20)2.1.3 占用比例固定(Constrained) (22)2.1.4 依平台而定(Constrained On Mobiles) (25)2.1.5 分清游戏屏幕分辨率与游戏视图宽高比 (25)2.2 自动调节UI的大小(UIRect) (26)2.2.1 概述 (27)2.2.2 自定义UI的大小(None) (28)2.2.3 与另一个UI关联(Unified) (29)NGUI全面实践教程(内部资料)——版权所有·2·2.2.4 与多个UI关联(Advanced) (35)2.2.5 应用示例——滑块雏形 (37)2.3 容器(UIWidget) (39)2.3.1 概述 (40)2.3.2 改变容器里UI对象的透明度 (41)2.3.3 对齐UI对象 (42)2.3.4 旋转UI对象(Pivot) (43)2.3.5 设置UI对象绘制顺序/接收事件的顺序(Depth) (44)2.3.6 手动调节UI的大小以及宽高比(Size和Aspect) (46)2.4 画板(UIPanel) (47)2.4.1 更高的优先级 (48)2.4.2 决定全局的绘制顺序 (49)2.4.3 全局裁剪 (49)2.4.4 其它高级设置 (50)2.4.5 显示绘制调用 (51)2.5 事件系统(UICamera) (52)2.5.1 确保事件系统正常运行的要素 (52)2.5.2 筛选可接收事件的对象 (54)2.5.3 查看当前接收事件的对象 (55)2.5.4 辅助功能设置 (55)2.5.5 触发事件的源头 (56)2.5.6 触发事件的阀值 (56)2.5.7 匹配常见触发源的特定事件 (57)2.5.8 可发送的全部事件及其处理方法 (58)第3章 NGUI可视组件 (60)3.1 显示文字信息(UILable) (60)3.1.1 字体分类——动态/静态字体(Dynamic和Bitmap) (60)3.1.2 常见的处理方式 (62)3.1.3 溢出处理 (64)3.1.4 文字特效 (66)3.1.5 格式不再一致——文字编码(BBCode) (68)3.2 显示精灵图片(UISprite) (70)3.2.1 概述(Flip和Color Tint) (70)3.2.2 直接显示——简单类型(Simple) (74)3.2.3 拉伸显示——切片类型(Sliced) (76)3.2.4 平铺显示——平铺类型(Tiled) (77)3.2.5 填充显示——填充类型(Filled) (78)3.2.6 自定义显示——高级类型(Advanced) (80)3.3 显示纹理图片(UITexture) (81)3.3.1 显示纹理图片 (81)3.3.2 显示图片的一部分 (83)·3·NGUI全面实践教程(内部资料)——版权所有3.3.3 显示任意类型的图片 (85)3.4 显示2D Sprite(UI2DSprite) (85)第4章常见UI控件 (88)4.1 按钮(UIButton) (88)4.1.1 概述 (88)4.1.2 自制按钮 (90)4.1.3 响应按钮单击事件 (93)4.2 弹出列表(UIPopupList) (94)4.2.1 概述 (94)4.2.2 自制弹出列表 (98)4.2.3 响应列表项选择事件 (99)4.3 开关(UIToggle) (100)4.3.1 概述 (100)4.3.2 自制开关(复选按钮) (102)4.3.3 单选按钮 (104)4.3.4 响应开关状态变化的事件 (105)4.4 输入框(UIInput) (107)4.4.1 概述 (107)4.4.2 自制输入框 (110)4.4.3 单行输入框 (112)4.4.4 多行输入框 (113)4.4.5 响应文本输入事件 (113)4.5 进度条(UIProgressBar) (115)4.5.1 概述 (116)4.5.2 自制进度条 (117)4.5.3 响应进度条值变化事件 (119)4.6 滑动条(UISlider) (120)4.6.1 概述 (120)4.6.2 自制滑动条 (122)4.6.3 响应滑动条值变化事件 (123)4.7 滚动条(UIScrollBar) (124)4.7.1 概述 (124)4.7.2 自制滚动条 (126)4.7.3 响应滚动条值变化事件 (127)第5章更高级的交互效果 (129)5.1 滚动视图(Scroll View) (129)5.1.1 预置UI对象——Scroll View (129)5.1.2 视图范围与裁剪效果 (130)5.1.3 拖动滚动视图的子对象 (131)5.1.4 拖动滚动视图的任意位置 (133)5.1.5 视图滚动的规则 (135)NGUI全面实践教程(内部资料)——版权所有·4·5.1.6 视图滚动的特效 (136)5.1.7 绑定滚动条 (138)5.1.8 其它辅助属性 (140)5.2 网格(Grid) (141)5.2.1 预置UI对象——Grid (142)5.2.2 排列UI对象 (142)5.2.3 排列规则 (145)5.2.4 处理禁用的UI对象 (145)5.3 表格(Table) (146)5.4 拖放操作(Drag and Drop) (148)5.4.1 拖动UI对象(UIDragDropItem) (148)5.4.2 修改被拖动UI对象的父对象(UIDragDropRoot) (150)5.4.3 呈现拖放动画效果 (151)5.4.4 将UI对象拖放到网格任意位置 (152)5.4.5 放置被拖动UI对象的容器(UIDragDropContainer) (155)5.5 游戏应用 (157)第6章高级功能 (160)6.1 数据/属性绑定(Property Binding) (160)6.1.1 绑定UI对象的属性 (160)6.1.2 绑定3D对象的属性 (162)6.1.3 属性依赖规则 (163)6.2 补间动画(Tweens) (164)6.2.1 动画的起点和终点 (165)6.2.2 动画的播放规则 (166)6.2.3 处理播放结束事件 (168)6.2.4 更多的播放控制(UIPlayTween) (169)6.2.5 更专业的动画播放控制(UIPlayAnimation) (173)6.3 按键绑定(UIKeyBinding) (174)6.3.1 绑定单个按键 (175)6.3.2 绑定组合键 (175)6.3.3 应用示例 (175)6.4 按键导向(UIKeyNavigation) (177)6.4.1 按照方向导向 (177)6.4.2 明确指定导向 (178)6.4.3 视图焦点的传递 (179)6.5 本地化系统(UILocalize) (179)6.5.1 预先准备的文件(Localization) (179)6.5.2 本地化文字 (180)6.5.3 本地化图片 (181)6.5.4 本地化所有文字和图片——语言选择(Language Selection) (183)6.5.5 使用时的注意事项 (183)·5·NGUI全面实践教程(内部资料)——版权所有6.6 事件触发器(UIEventTrigger) (184)6.6.1 可检测的常见事件 (185)6.6.2 使用示例 (185)6.7 委托与参数(Delegates & Parameters) (187)6.7.1 不限制参数个数 (187)6.7.2 示例1:引用自定义组件的属性 (190)6.7.3 示例2:设置显示的图片 (191)6.7.4 示例3:调节透明度 (192)第7章自带的工具 (194)7.1 预置体工具(Prefab Toolbar) (194)7.1.1 展示模式 (194)7.1.2 添加/删除预置体 (195)7.1.3 设置缩略图/图标 (197)7.2 图集制作工具(Atlas Maker) (199)7.2.1 制作新图集 (199)7.2.2 为已有的图集添加子图 (201)7.2.3 删除图集中的特定子图 (202)7.2.4 编辑图集中的子图(UIAtlas) (203)7.2.5 为子图添加特效 (204)7.3 字体制作工具(Font Maker) (204)7.3.1 制作静态字体 (205)7.3.2 使用自己制作的字体 (207)7.3.3 为字符添加特效(UIFont) (207)7.3.4 使用表情(图文混排) (208)7.4 面板工具(Panel Tool) (210)7.5 绘制调用工具(Draw Call Tool) (211)7.6 摄像机工具(Camera Tool) (212)7.7 UI模版工具(Widget Tool)(已过时) (212)NGUI全面实践教程(内部资料)——版权所有·6·第1章 学习NGUI前的准备NGUI是Unity最重要的插件,在Unity资源商店(Asset Store)的付费排行榜中始终名列前茅,如图1-1所示。
NGUI自定义图集与自定义字体

自定义图集第一步:导入NGUI外部包。
这个大家都应该会吧。
第二步:准备一些图片资源,这里我借用一下2DToolKit的一些图片,并将其导入到Unity3D工程中第三步:创建图集,并为图集起名为MyAtlas,随即选图集中所需要的图片资源,点击Create。
如图:这时就会在Font&Atlas目录下生成一个Prefab文件一个Material和一个贴图此时我们自定义图集就创建完毕了。
下面我们开始创建自定义字体。
自定义字体集第四步:这里用到的是BM font工具,运行,界面如图:第五步:设置字体样式和大小,这里我用了我比较喜欢的萝莉体,并讲字体大小设置成32,字符编码选择<Unitcode>第六步:由于字量太大,我只需要少量的字,那么我需要对其进行筛选,如果你需要的多,例如聊天功能,那么就跳过这步吧。
创建一个文本文件,讲你需要的文字写在里面。
并保存为UTF-8编码筛选文字打开你刚刚建立的文本文件,然后选择第七步:导出设置第八步:导出选择保存路径,和文件名,这里我为其起名为:myFont。
随后找到myFont.fnt文件,将其扩展名改为.txt 然后讲txt和png文件导入到Unity3D的项目中第九步:自定义字体集其中Font Data中拖进你刚刚建立的txt文件,Texture拖进刚刚建立的png文件,Font Name自己随便起个名字,这里我起名叫MyFont,Atlas拖进之前图集Prefab文件,点击“Create the Font”此时项目中,就会生成你刚刚建立的字体MyFont测试:创建一个Button试试看吧,下面这个是我建立后的效果。
NginxWebUI--强大的nginx可视化配置工具

NginxWebUI--强大的nginx可视化配置工具前言本文介绍一下NginxWebUI,通过这款工具我们可以轻松的以图形化方式来配置我们的Nginx的各项功能,包括HTTP协议转发,TCP协议转发,反向代理,负载均衡,SSL证书自动申请、续期。
NginxWebUI可以部署在Ubuntu、CentOS、Windows等各个平台,可以通过本地部署或者通过Docker镜像来部署,其中Docker部署是最为简单的,只需要拉取镜像、创建并启动容器,接下来将演示如何使用Docker来部署NginxWebUI。
官网环境系统:CentOS 7 Docker:20.10.11拉取镜像docker pull cym1102/nginxwebui:latest在这里插入图片描述创建并启动容器大家可以根据自己的习惯来自定义nginxWebUI容器与宿主机的映射目录这段创建容器命令使用了--net=host,直接映射本机端口, 因为内部nginx可能使用任意一个端口, 所以必须映射本机所有端口.docker run -d -v /mydata/nginxWebUI:/home/nginxWebUI -e BOOT_OPTIONS="--s erver.port=8080" --privileged=true --net=host cym1102/nginxwebui:latest但是本人一般只用得到80端口和443端口,而nginxWebUI也要用到8080端口,这里我以端口映射的方式来监听:-p 80:80 -p 443:443 -p 8080:8080自定义端口映射就会有局限性,在配置中你如果代理到其它端口就无法监听到了,所以如果你想端口随意监听请用上面那条命令,如果和我一样只用得到80和443那就请用下面这条命令docker run -itd -v /mydata/nginxWebUI:/home/nginxWebUI -e BOOT_OPTIONS="--server.port=8080" --privileged=true -p 80:80 -p 443:443 -p 8080:8080 cym1102/ng inxwebui:latest /bin/bashimage注意:•容器需要映射路径/mydata/nginxWebUI:/home/nginxWebUI, 此路径下存放项目所有数据文件, 包括数据库, nginx配置文件, 日志, 证书等, 升级镜像时,此目录可保证项目数据不丢失. 请注意备份.•-e BOOT_OPTIONS 参数可填充java启动参数, 可以靠此项参数修改端口号, "--server.port 占用端口", 不填默认以8080端口启动•日志默认存放在/mydata/nginxWebUI/log/nginxWebUI.log查看容器docker psimage容器正常启动image访问后台管理由于创建容器的时候我的容器端口参数--server.port=8080设置的为8080,所以我们就要使用服务器IP+8080端口就可以访问到后台。
Unity3dNGUI的使用(九)(UIScrollView制作滑动列表)

Unity3dNGUI的使⽤(九)(UIScrollView制作滑动列表)UIScrollView制作滑动列表,可横向,竖直展⽰⼀些列表在固定可视范围内UIScrollVIew只是⼀个可滑动的UI组件如果需要制作复杂的可视区域UI需要配合使⽤UIPanel与UIGrid这样更⽅便UI的展⽰a.创建⼀个2D UI Root,在NGUI菜单上创建⼀个Scroll Viewb.在ScrollView上默认的为我们添加了⼀个UIPanel与UIScrollViewAlpha:⾯板的透明度Depth:⾯板在所有UI上的层次等级Clipping:⾯板剪切,分为None(⽆剪切效果),Soft Clip(软剪切,有边缘模糊效果),Alpha Clip(硬剪切,边缘锋利)Constrain But Don't Clip(显⽰所有内容,但是是剪切区域存在)Advanced Options:⾼级选项Render Q:⾯板⾥所有图⽚的渲染质量,Automatic(⾃动适应),Normal(正常),Explicit(⽤户指定)Normals:法线贴图Cull:如果⽤⿏标⼿动组件则剔除组件Visible:⾯板是否在可视范围内Offset:通过位置偏离锚点Static:如果是没移动的组件,也进⾏代码检测,⼀般是⽤于ScrollViewPanel Tool:是否显⽰⾯板⼯具Show Draw Calls:显⽰渲染的详细信息Content Origin:滚动内容的起始点位置Movement:移动⽅向Drag Effect:内容拖动时候显⽰的效果Scroll Wheel Factor:使⽤⿏标进⾏滚动时,滚动时候的⽐例Momentum Amount:快速滑动时产⽣的冲⼒Restrict Within Panel:在⾯板⾥进⾏约束Cancel Drag if Fits:如果有组件适应了⾯板的⼤⼩,取消组件在⾯板⾥的拖动Smooth Drag Start:平滑拖动Drag Emulation:在苹果上仿真滑动效果Scroll Bars:在进⾏拖动时,可以加⼊⼀个Scroll Bars来控制或者显⽰进度c.在NGUI菜单上添加⼀个Grid到ScrollView组下d.设置UIGridArrangement:表格的显⽰⽅向Sorting:对表格内的内容进⾏排序,Alphabetic(以字母顺序排序),Horizontal(⽔平⽅向进⾏排序),Vettical(垂直⽅向进⾏排序),Custom(⾃定义的排序)Max Per Line:表格每⾏显⽰多少个元素Cell Widht:单个显⽰的宽度Cell Height:单个显⽰的⾼度Animate Smoothly:使⽤平滑动画过度效果Keep Within Panel:保持在⼀个⾯板⾥显⽰e.添加⼀些元素到UIGrid组下,并设置好位置,配合UIPanel的Soft Clip可以让元素在⼀定的可范围内显⽰这样⼀个简单的列表显⽰效果就做出来了:)。
【游戏蛮牛】NGUI系列教程 文档 WORD完整版-推荐下载

创建 UI 元素,选择菜单 NGUI - Open the Widget Wizard,弹出创建 UI 元素对话框
首先是 Atlas 窗口,Atlas 就是一个大的图片,里面用于存放我们需要用到的各种图标。在后面我们将讲 解怎么创建自己的 Atlas,Font 是我们创建 UI 时用到的字体,Template 可以允许我们选择要创建的 UI 类 型,包括 Label,Sprite 等等,如图
在后面我们将讲解怎么创建自己的atlasfont是我们创建ui时用到的字体template可以允许我们选择要创建的ui类型包括labelspirit等等如图我们可以使用ngui自带的一些atlas如图是ngui自带的一些atlas其中带有font字样的是字体atl这里atlas我选择fantasyatlasfont选择fantasyatlasfontnormal在项目窗口中选择fantasyatlas拖到atlas中选择fantasyatlasfontnormal拖放到font在template中我们选择spiritspirit选项让我们选择需要创建的图标这里我们选择smoothpivot默认的center然后确保addto右边的选项是我们要添加到的panel中如果不是我们可以在inspector中点击选中panelngui会自动为我们切换
对全部高中资料试卷电气设备,在安装过程中以及安装结束后进行高中资料试卷调整试验;通电检查所有设备高中资料电试力卷保相护互装作置用调与试相技互术关,系电通,力1根保过据护管生高线产中0不工资仅艺料可高试以中卷解资配决料置吊试技顶卷术层要是配求指置,机不对组规电在范气进高设行中备继资进电料行保试空护卷载高问与中题带资2负料2,荷试而下卷且高总可中体保资配障料置2试时32卷,3各调需类控要管试在路验最习;大题对限到设度位备内。进来在行确管调保路整机敷使组设其高过在中程正资1常料中工试,况卷要下安加与全强过,看度并25工且52作尽22下可护都能1关可地于以缩管正小路常故高工障中作高资;中料对资试于料卷继试连电卷接保破管护坏口进范处行围理整,高核或中对者资定对料值某试,些卷审异弯核常扁与高度校中固对资定图料盒纸试位,卷置编工.写况保复进护杂行层设自防备动腐与处跨装理接置,地高尤线中其弯资要曲料避半试免径卷错标调误高试高等方中,案资要,料求编试技5写、卷术重电保交要气护底设设装。备备置管4高调、动线中试电作敷资高气,设料中课并技3试资件且、术卷料中拒管试试调绝路包验卷试动敷含方技作设线案术,技槽以来术、及避管系免架统不等启必多动要项方高方案中式;资,对料为整试解套卷决启突高动然中过停语程机文中。电高因气中此课资,件料电中试力管卷高壁电中薄气资、设料接备试口进卷不行保严调护等试装问工置题作调,并试合且技理进术利行,用过要管关求线运电敷行力设高保技中护术资装。料置线试做缆卷到敷技准设术确原指灵则导活:。。在对对分于于线调差盒试动处过保,程护当中装不高置同中高电资中压料资回试料路卷试交技卷叉术调时问试,题技应,术采作是用为指金调发属试电隔人机板员一进,变行需压隔要器开在组处事在理前发;掌生同握内一图部线纸故槽资障内料时,、,强设需电备要回制进路造行须厂外同家部时出电切具源断高高习中中题资资电料料源试试,卷卷线试切缆验除敷报从设告而完与采毕相用,关高要技中进术资行资料检料试查,卷和并主检且要测了保处解护理现装。场置设。备高中资料试卷布置情况与有关高中资料试卷电气系统接线等情况,然后根据规范与规程规定,制定设备调试高中资料试卷方案。
NGUI之Slider,最简单的方法做进度条

既然标题是最简单的,那么很多东西就不需要我们自己做了,使用的是NGUI的示例,只针对初学者,接下来让我们来做一个最简单游戏设置里的声音控制。
更多精彩请关注【狗刨学习网】1、导入NGUI;2、找到NGUI的Menu示例Demo,文件夹为NGUIExamplesScenes 打开Example 3 - Menu 场景3、在Hierarchy视图中找到Option - Voice游戏对象【灰色的active没有启用的对象】4、复制改游戏对象,并在你的项目的Hierarchy视图中粘贴到合适的位置,并将active 启用(或者在你要进入该设置时用代码控制启用也可以)。
5、修改下Slider、UILabel等的名字和内容,加上一个现实百分比的Label基本效果已经出来了。
如要改成自己的样式,则可以更改下Slider的前景的Sprite,背景Sprite,游标Sprite 等设置即可6、给Slider的游标GameObject绑定滑动的事件。
把要绑定事件的脚本挂载到Slider上(或Slider的游标GameObject)找到游标的游戏对象1.<font face="新宋体" size="2">var slider_Voice = GameObject.Find("UIRoot/gameSetBG/Option_Voice/Slider_Voice/Thumb");</font>在Awake事件中使用UIEventListener进行绑定滑动事件,1.<font face="新宋体" size="2"> void Awake ()2. {3. UIEventListener.Get(slider_Voice).onPress += SetBGGSound;//滑动事件4. }</font>复制代码写好滑动事件触发的方法1.<font face="新宋体" size="2">//设置背景音乐2. public void SetBGGSound(GameObject go, bool state)3. {4. UILabel soundPerLabel = soundPer.GetComponent<UILabel>();//声音百分比的Label5. UISlider soundSlider =slider_Voice.GetComponentInParent<UISlider>();6. if (soundSlider.value == 0f)7. {8. soundPerLabel.text = "静音";9. }10. else if (soundSlider.value == 1f)11. {12. soundPerLabel.text = "100%";13. }14. else15. {16. soundPerLabel.text = (soundSlider.value * 100).ToString("F0")+ "%";17. }18. UICamera.GetComponent<AudioSource>().volume =soundSlider.value;//设置背景音乐的声音19. }</font>因为我是把背景音乐直接放在了UICamera,如在其他游戏对象上则找到改游戏对象获取AudioSource组件进行设置音量。
NGUI基本控件的使用教程与实例_图文

NGUI基本控件的使用教程与实例NGUI教程:步骤1-Scene1.创建一个新的场景(New Scene)。
2.选择并删除场景里的MainCamera。
3.在NGUI菜单下选择Create a New UI,会打开UI创建向导。
4.在创建向导中你能更改UI的基本参数。
现在我们选Default layer,点击Create Your UI 按钮。
5.就这样,你的UI便创建好了。
注意:如果在一个已存在NGUI的项目中你要跳过第二步,并且你要选择一个不同的UI层,你还要确保非GUI相机不渲染UI层。
在做具体UI控件之前,我们看看UI向导为我们做了什么。
1.在UI Root (2D)对象上有个UIRoot脚本。
这个脚本会重新调整游戏对象符合你的屏幕高度,有自动和手动选择高度。
让你制定小部件在像素中的坐标,并且和游戏世界中的剩余对象相比依旧相对来说较小。
2.Camera对象包含Camera和UICamera脚本。
UICamera脚本包含NGUI的事件系统(event system)。
3.Anchor包含UIAnchor脚本。
虽然这个脚本可以附加给控件,但在这里可以避免Windows机器上半个像素偏移的问题。
4.Panel对象有UIPanel脚本,UIPanel是一个容器,它将包含所有UI 小部件,并负责将所包含的部件组合优化,以减少绘制命令的调用。
同时,你可能还注意Panel(仪表板)GameObject现在已经被选中了。
也就是说下面添加的所有部件都将在作为它的子对象。
对应的场景在插件中的Tutorial 1 - Scene中有:NGUI教程:步骤2-Spirit现在让我们添加一些控件,在NGUI菜单中选择NGUI menu -> Create a Widget。
这个向导会指导你建立一些基本的控件。
需要选择所使用的图片集Atlas和字体集Font。
因为是新建的项目,所有按下Atlas和Font按钮没有效果,相反会自动展示最近使用的元素。
ngui 粒子用法

ngui 粒子用法
在使用NGUI制作粒子特效时,可以遵循以下步骤:
1. 创建一个RenderTexture,并使用Camera将其渲染出来。
将Camera 标记为“Always Animate”,以保证Camera每帧都会渲染出一张新的RenderTexture。
2. 创建一个Material,将这个Material贴到一个Plane上(当然也可以使用其他几何体)。
在Material的Shader中指定一个Uniform,并将RenderTexture设置给这个Uniform。
3. 在场景中放置粒子系统,粒子系统将会渲染在RenderTexture上,并随着Camera的移动而更新。
4. 使用一个UITexture作为NGUI的组件,将RenderTexture赋值给它,这样就可以将粒子特效嵌入到NGUI界面中了。
在具体制作时可能需要根据游戏实际需求对粒子的表现进行细致调整。
如有更复杂的需求或疑问,建议咨询游戏开发专业人士。
unity3D学习之NGUI的使用

让我们实际的研究一下如何将NGUI和C#LightEvil结合起来。
这里使用NGUI2.7,因为他是一个开源的版本,NGUI最新的版本未经作者的许可,是不可以带入我们的开源项目使用的。
这个例子完成的功能是从NGUI例子里找出了三个界面,按最下方的按钮依次进行切换这是在之前的框架演示Mode1的基础上做的由一个状态机去进行驱动,这也是我推荐各位使用脚本的方式。
《=这是脚本,也是程序Mode1的模式是定义一个接口类,然后由脚本继承此类型实现,因为随时考虑AOT的缘故(要兼容IOS),我们的脚本有很多限制,比如不能运行时产生IL类型。
那么如果你熟悉AOT和JIT的机制,你一定会发现,脚本继承程序类型的是不可能的。
由于我们的脚本和C#语法兼容,所以,其实这个IState 会在程序中会和脚本中分别使用,他们是两个不同的东西。
只是从语法上看起来一模一样。
《=这是程序通过一个叫做ScriptInstanceState的类,他是程序中的IState,他的作用是调用脚本中的IState,通过这个类型,脚本状态和程序状态可以实现无缝切换。
绕口令来了:文章来自【狗刨学习网】在实际的游戏中,你可以一部分状态用程序实现,一部分状态用脚本实现。
由于我们的脚本是c#的严格子集,所有脚本实现的状态,作为程序也都可以正常执行。
程序实现的状态,对语法进行改写,改成C#Light可以通过的状态,也就可以作为脚本执行了。
先不管这个,其实无缝切换很简单,往这里看。
《=这是程序就是状态,直接new 就是程序,从我们的粘合类ScriptInstanceState创建,就是脚本大部分的操作都是没问题的注意以下红字是旧的部分,新0.41Beta已经修改成1.不强制使用event,所以不修改UIEventListener也可以挂事件,直接使用等号即可2.修改了Reg机制,注册更简洁,不需要特别处理黄字为新的部分。
《=这是脚本不需修改UIEventListener,使用方法与代码一致RegHelper_DeleAction<GameObject>的意思是,我们注册的委托类型是void xxx(GameObject p1) 的形式。
NGUI之UIGrid

UIGrid:这个组件可以轻松的让你排列你的组件,并且在运行或是编辑的时候都可以。
更多精彩请关注【狗刨学习网】
效果图如下:
一:使用步骤
1.选择一个panel然后右键Create——Grid
2.为Grid创建几个子Sprite,位置随便放
3.然后运行,效果如下
4.UIGrid组件分析
其中的右上角的小齿轮点击开,里面的Execute,点击即可在编辑的状态下排列这些Sprite 了。
Arrangement:排列的方向。
Sorting:排列的顺序。
————None:没有顺序。
————Alphabetic:按字母的顺序。
————Horizontal:水平放置的顺序。
————Vertical:垂直放置的顺序。
————Custom:自定义的方式。
比如将Sprite的名字命名方式如下:001,002,003 Pivot:抛点的位置。
Max Per Line:最大行或是列的数量。
Cell Width:单元之间的宽度。
Cell Height:单元之间的高度。
Animate Smoothly:平滑动画。
Hide Inactive:隐藏不活动的组件。
Keep Within Panel:保持在Panel中。
龙图教育:Unity3d NGUI的使用

龙图教育:Unity3d NGUI的使用
使用NGUI制作Tab表格,使用到的NGUI组件有,UIToggle,UIToggled Objects 如图《刀塔传奇》中聊天模块的制作中,就有Tab表格
具体用到的NGUI脚本组件主要有两个,分别是:
UIToggle,负责按键的分组
UIToggled Objects:负责当前按键激活哪个显示的内容
具体实现步骤:
1) 创建一个2D UI,在UI Root下分别创建两个UIButton
2) 为两个UIButton添加Boxcolider组件,让之能够交互。
3) 在UIButton上加入UIToggle与UIToggled Objects
UIToggled Objects脚本详解:
Activate:当前开头激活状态时,需要激活哪些组件
Deactivate:当开头处于非激活状态时,需要取消哪些组件的激活状态
4) 将UIToggled Objects的激活状态指向需要激活的显示内容
大家可以做下以下的练习:
想要学U3D的童鞋可以来龙图教育,龙图教育是一家专业做互联网教育品牌的教育机构,线上线下都有,想要学到更多有关U3D的知识可以直接访问龙图教育官网。
unity3d游戏开发之NGUI应用

今天学习了NGUI的滑条的制作和登陆界面的显示。
实现打字机效果
创建label 添加你想输入的文字,为label添加组件
Add Compoent-->Typewriter Effect-->Chars Per Seconds(每秒显示多少个字)
你可以让文字变得更好看。
实现滑动条
首先需要建立一个Sprite 黑色的当做底纹在弄一个Sprite做白色的滑动
右键子Sprite-->Attach-->Box Collider-->右键-->Attach-->Slider
把子Sprite拖拉到Foregroud里面这样既可以滑动了。
一般的滑动条还有百分比的显示
添加一个Label(值为100%)
选中子Sprite,把Label拖拉到属性On Value Change的Notify里面,
并为Method选取setCurrentPercent值
Thumb为游标,可以添加一个子Sprite(黑色条)缩小一下放在滑动条的右边,作为游标使用
登陆界面:
新建一个Sprite-->为Sprite添加Box Cllider和Input Field Script-->为Sprite 添加一个子Lable-->把子Label拖拉到Sprite属性Input的Label里面
这篇文章来自狗刨学习网
Input Type 中可以设置密码为星号。
Nginx可视化配置工具NginxWebUI的使用

Nginx可视化配置⼯具NginxWebUI的使⽤⽬录NginxWebUI介绍NginxWebUI功能说明NginxWebUI安装1、jar包运⾏⽅式2、docker安装说明NginxWebUI使⽤演⽰介绍⼀款好⽤的⽹页版开源⼯具,同样它的功能也是Nginx配置⽣成器,功能⾮常强⼤,⽅便实⽤,它是:NginxWebUI。
NginxWebUI介绍NginxWebUI是⼀款⽅便实⽤的nginx ⽹页配置⼯具,可以使⽤ WebUI 配置 Nginx 的各项功能,包括端⼝转发,反向代理,ssl 证书配置,负载均衡等,最终⽣成「nginx.conf」配置⽂件并覆盖⽬标配置⽂件,完成 nginx 的功能配置。
NginxWebUI功能说明该项⽬是基于springBoot的web系统,数据库使⽤sqlite,因此服务器上不需要安装任何数据库;可管理多个nginx服务器集群, 随时⼀键切换到对应服务器上进⾏nginx配置, 也可以⼀键将某台服务器配置同步到其他服务器, ⽅便集群管理;nginx本⾝功能复杂, 本项⽬并不能涵盖nginx所有功能, 只能配置常⽤功能, 更⾼级的功能配置仍然需要在最终⽣成的nginx.conf中进⾏⼿动编写。
部署此项⽬后, 配置nginx再也不⽤上⽹各种搜索, 再也不⽤⼿动申请和配置ssl证书, 只需要在本项⽬中进⾏增删改查就可⽅便的配置nginx。
NginxWebUI安装它有两种安装⽅式:⼀种是jar包运⾏⽅式⼀种是 Docker运⾏⽅式注意:本项⽬需要在root⽤户下运⾏系统命令,极容易被⿊客利⽤,请⼀定修改密码为复杂密码1、jar包运⾏⽅式⾸先需要安装JDK和Nginx环境。
参考⽂章:1.1 下载最新版发⾏包jarwget /download/nginxWebUI-2.1.1.jar有新版本只需要修改路径中的版本即可。
1.2 启动程序nohup java -jar -Xmx64m nginxWebUI-2.1.1.jar --server.port=8080 --project.home=/home/nginxWebUI/ > /dev/null &参数说明(都是⾮必填)-Xmx64m 最⼤分配内存数--server.port 占⽤端⼝, 默认以8080端⼝启动--project.home 项⽬配置⽂件⽬录,存放数据库⽂件,证书⽂件,⽇志等, 默认为/home/nginxWebUI/注意命令最后加⼀个&号, 表⽰项⽬后台运⾏2、docker安装说明本项⽬制作了docker镜像, 同时包含nginx和nginxWebUI在内, ⼀体化管理与运⾏nginx.2.1 安装docker容器环境⾃⾏百度2.2 下载镜像docker pull /cym1102/nginxwebui:2.1.12.3 启动容器docker run -itd -v /home/nginxWebUI:/home/nginxWebUI -e BOOT_OPTIONS="--server.port=8080" --privileged=true --net=host /cym1102/nginxwebui:2.1.1 /bin/bash注意:启动容器时请使⽤--net=host参数, 直接映射本机端⼝, 因为内部nginx可能使⽤任意⼀个端⼝, 所以必须映射本机所有端⼝.容器需要映射路径/home/nginxWebUI:/home/nginxWebUI, 此路径下存放项⽬所有数据⽂件, 包括数据库, nginx配置⽂件, ⽇志, 证书等, 升级镜像时, 此⽬录可保证项⽬数据不丢失. 请注意备份.-e BOOT_OPTIONS 参数可填充java启动参数, 可以靠此项参数修改端⼝号--server.port 占⽤端⼝, 不填默认以8080端⼝启动⽇志默认存放在/home/nginxWebUI/log/nginxWebUI.log安装完成,启动之后,就要以通过WEB⽹页来访问这个项⽬了。
NGUI官网示例详解(下)

NGUI官网示例详解(下)NGUI官网示例8–Scroll View(Camera)在上一个示例中的ScrollView使用到了Shader的处理,而对于一些低端的机器或者移动设备可能会出现显示不正常的结果,所以,NGUI还为我们准备了另外一个处理方式,也就是通过摄像机的移动来达到同样的目的。
接下来,这个示例就是告诉大家如何实现这个功能。
首先先制作一个普通的GUI界面,这些界面在上面的教程中已经说过,这里就不再赘述,其最终效果如图所示:现在来制作那些可以滚动的Item结构。
使用Create a new UI创建一个NGUI基本结构,并调整它们的层次关系,并把UIRoot下的Panel组件删除掉,最终如图所示:新建一个新的空游戏对象,并命名为Offset,并放置在anchor成为它的子物体,并reset 一下,同时给它添加一个Panel组件(Component->NGUI->Interation->Panel),这样,该对象才能放置NGUI元件。
如图所示:同NGUI官网示例7--ScrollView讲解一样,创建1个Item元件,然后用Ctrl+D的方法复制出9个来,当然你也可以复制你需要的数量,现在这些Item都是重叠在一起的,最终效果如图所示:选择Offset,为其添加一个Table组件(Component->NGUI->Interaction->Table)。
哈,神奇的效果在此出现,只是上一个教程使用Grid组件,这次使用的是Table,这个Table 和Grid的不同,可以查下官网的说明。
这里不赘述。
如图所示:选择第一次创建的GUI结构,选择Window下的TiledSprite,如图所示:在下面创建两个空的游戏对象,并分别命名为BottomRight和TopLeft,这两个空对象用来标记滚动Item的边界,并在场景编辑窗口中放置在对应的位置,最后为该TiledSprite添加一个UIDragCamera组件(Component->NGUI->Interation->DragCamera)如图所示:选择第二个Camera,为其添加一个ViewCamera组件(Component->NGUI->UI->ViewCamera),并把第一个摄像机赋值给SourceCamera,把TopLeft对象赋值给Top Left,把BottomRight 赋值给Bottom Right,然后选择Offset,调整该对象的位置,如图所示:为该摄像机添加一个DraggableCamera组件(Component->NGUI->Interaction-> DraggableCamera),并为其设置参数,如图所示再次选择刚才添加了两个空对象的择Window下的TiledSprite,把第二个Camera赋值给该元件中的DragCamera组件中的DraggableCamera,其结果如下接着同样选择该TiledSprite,为其添加一个Collider,这样,才能接受输入信息(NGUI-> Attach a Collider)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
NGUI是Unity3D引擎上一个最常用的界面制作工具。
这份文档是NGUI插件官方13个例子的制作过程详解,是一份很全很难得的资料。
照着做完了的话,基本能掌握NGUI插件的大多数功能了。
NGUI例子制作过程,由笔者参照NGUI的例子重新自己做了一遍,以加深对NGUI用法的理解。
NGUI官网示例详解(上)一、Example 1 – UIAnchor该例子是演示NGUI中使用Anchor组件实现GUI对齐的功能。
其最终效果如下:下面一步一步实现该例子。
1.删除新建的场景的Main Camera摄像机,在图层中新建一个GUI层,接着,选择菜单上的NGUI->Create a new UI,弹出该对话框,设置如图所示:2.最后点击Create Your UI按钮,可以在Hierachy窗口中自动生成下面的树状结构:3.把Panel的父物体改成Anchor,如图所示:4.把该Anchor命名为Anchor-Bottom,并为该对象添加一个空游戏对象,并命名为offset,并reset它的变换。
该空游戏对象可以用于它下面子对象与该Anchor之间的偏移量。
如图所示:5.选中offset,选择菜单中的NGUI-> Create new Widget,弹出一个Widget Tool 对话框,该对话框基本是用于制作按钮(Buttom)、标签(Label)等部件的对话框。
设置其参数之后,并点击Add To按钮,确保该按钮后面的对象是offset。
这就在offset下生成一个Label便签,并把标签的文本改成Bottom,如图所示:6.以同样的方法在offset中添加一个slicedsprite。
记住该对象的深度应该比La bel要小,不然Label就会被覆盖而看不到。
这里设置label的深度(depth)为0,而sli cedsprite为-1,并在编辑器中调节该元素的大小,如图所示:7.最后一步,选择Anchor-Bottom,设置该元素的对齐方式(side)为“Bottom”。
选择之后,它会自动把它自己对其到摄像机的最低端,我们可以通过offset来调节该元件和Anchor之间的偏移量。
如图所示:8.其他的7个Anchor可以使用Ctrl+D复制出来,并更改Anchor的不同的方式来对齐到不同的位置上,并在编辑窗口中调整offset的位置,其结果如图所示:9.最后来制作其背景,新建一个空的游戏对象,并最后Panel的子物体,并reset 它的变换。
命名为Anchor-background,并在NGUI菜单中,选择Attach an Anchor,此时该空游戏对象就成为了一个Anchor,并设置对齐方式为center。
10.接着以Anchor-backgournd作为父物体,新建一个名为window的空游戏对象,如图所示,window游戏对象只是为了方便管理而设置的一个辅助对象而已。
11.在window下面,使用Create Widget面板创建一个slicedSprite,其参数如下:12.在编辑窗口中缩放该对象,使其对齐到窗口,并把其深度(Depth)设置成-2。
最终效果如下:13.接下来,给他添加一个多行Label,同样使用createWidget对话框,其参数如下:14.在其文本内容框中写入需要的文字,当然,因为现在使用的是英文字体,所以中文是显示不出来的,如图所示,并把深度(depth)改为-2,把Line Width设置成500,可以设置显示每行文字的宽度。
如图所示:在官方的该例子中,还有上面一个标题,其实也是有一个Label和一个slicedSprite组成的,所以,这里不再阐述。
下面的几个例子将视时间创作,论坛发文章还真有点难度,尤其是用word写出来后,图片还得一张一张拷出来再贴上去。
由于时间仓促,未免有疏漏的地方,请各位灌水的同仁批评指正。
二、Example2 – Interaction其最终效果如图所示,当点击Show按钮时,窗口会过度到平躺位置,并出现两个立方体,这两个立方体当鼠标位于上面时,会出现按钮的onHover效果:1.新建一个场景,并把该场景中的MainCamera删除掉,并通过菜单中的NGUI->Create a new UI新建一个UI结构,如图所示:删除Anchor和UIRoot(3D),只留下Panel,并把Panel命名为Message Root,如图所示:在MessageRoot下,创建一个空游戏对象,并命名为3D UI,并reset它的所有变换,reset 这一步很重要,不然以后的GUI元素可能位置就不对了。
如图所示:首先先使用Create a widget工具创建一个Sprite,并命名为UISprite-Background,并在编辑窗口中调整它的大小,设置其深度为-5,该Sprite用于作为背景,其参数如图所示:在3D UI层级中,新建一个空游戏对象,并命名为Window,该对象用于整体调整下面GUI 的移动和旋转等。
如图所示:下面来制作Window中的各个元素。
首先创建背景。
使用Create a widget,使用UITiledSprite,该元素可以等你放大它的范围时,它会以平铺的方式显示,这样可以大大节省资源的体积。
该其参数如下:使用Create a Widget中的Sliced Sprite,创建标题栏,该元素可以在放大范围时,拉伸其背景。
创建好之后在编辑窗口中改变它的位置和大小,使其在窗口的顶端,其参数和效果如下:再为背景添加一个半透明的SlicedSprite,其参数和效果如下:创建一个Label,作为该窗口的标题,其参数和效果如下:创建一个Label,作为窗口中的文字说明,其参数和效果如下:创建一个按钮,命名为:button-show,设置该按钮的Label文字描述为Show,设置Background的颜色为深蓝色,调整它的位置和大小,最终效果如图所示:为该Button创建一个空的子物体,并命名为Animation,最后对该空物体添加一个Animation 组件(Component->Miscellaneous->Animation),并在project窗口中找到NGUI->Examples->Animations->Button,把该脚本添加到Animation组件中的Animation 中。
(这个Button的动画可以用于实现按钮在某种状态下的动画效果)接着把Button下面的Label和Background拖到Animation对象上,成为其子对象,如图所示:为Show按钮添加三个装饰图标,这三个图标都是Sprite元素,可以制作一个之后,使用Ctrl+D复制出另外两个,并设置它的位置和颜色,最后可以添加一个空的游戏对象,并命名为ICON,把这三个图标拖到ICON中,这样可以方便管理,其最终结果如图所示:复制该Button,并把该Button的Label文本设置成HIDE,命名为button-hide再把ICON 删除掉,调整它的位置,最终效果如图所示:现在,来完成当鼠标放置在按钮上面时,即onHover状态时,它的动画效果。
我们以Show 按钮为例子,Hide的设置类同。
选择Button-show,为该按钮添加一个UIButtonPlayAnimation组件(菜单中Component->NGUI->Interaction->Button Play Animation)。
添加之后,把该按钮下的Animation赋值给该组件中的Target变量,设置Trigger为OnHover,点击播放,当把鼠标放置在该按钮上时,可以看到已经有动画效果了,此时可以对比未对Hide按钮添加UIButtonPlayAnimation组件时的效果。
参数如图所示:对Button-hide按钮进行相同的操作。
接下来,完成窗口的变换(移动和旋转),使其当点击show按钮时,窗口平躺下来。
新建两个空游戏对象,并命名为WindowActive和WindowInactive,这两个对象只包含了对象的变换信息(平移、旋转和缩放)。
我们将用这个两个空游戏对象的变换信息来制作窗口在这两个位置间的平滑过渡。
首先把该两个游戏对象放置到3D UI对象下,成为它的子物体,然后把这两个对象reset一下,接着,调整WindowInactive的旋转角度和位置。
而WindowActive 保持变换不变。
注意,此时当中的scale参数最好跟Window中的缩放一样,除非你要实现缩放效果,如图所示:选择Window对象,为其添加一个TweenTransform组件(Compoent->NGUI->Tween-> Transform),该组件可以根据两个Transform对象来在它们之间进行平滑过渡。
添加组件之后,把WindowActive和WindowInactive对象赋值给该组件下的From和To下,同时把给组件的Enable关掉,我们将使用Show按钮来控制它的打开,具体参数如下,如图所示:为Show按钮添加UIButtonTween组件(Component->NGUI->Interaction->Button Tween),该组件可以使得Target中的Tween类型的动画进行开关。
把Window对象赋值给该组件下的Target,并设置PlayDirection为Forward,Trigger为OnClick,If Disabled On Play为EnableThenPlay,表示当播放该动画时,启动Target中的Tween类型动画。
这个组件是关键。
点击播放,可以看到最终的效果,你可以在播放时,在没按下show按钮之前选择Window 组件,可以看到此时的TweenTransform组件是关闭的,当你按下show按钮之后,该组件被打开了,播放完之后,又被关闭。
现在来完成当点击Hide按钮时,窗口回到原来的位置,同样给该按钮添加一个UIButtonTween组件,把Window对象赋值给该组件下的Target,Trigger设置为OnClick,Play Direction设置为Reverse,If Disabled On Play设置为DoNothing。
完成之后,点击播放,查看效果,如图所示:以上几步就实现了官网上的Interaction中窗口位置的平滑变换效果。
关键是UIButtonTween和其他的Tween类型之间的连接。
最后,把摄像机调整到其他的角度,(没有怎么去考虑美术上面的东西,有点难看,呵呵)以上几步就实现了官网上的Interaction中窗口位置的平滑变换效果。