NGUI

1、定义:NGUI是严格遵循KISS原则并用C#编写的Unity插件,

                  提供强大的UI系统和事件通知框架,

                  它是开源的,代码写得很好,值得去研究学习、模仿

2、与GUI、UGUI的区别

      它们都实现了在Unity中制作二维UI界面的功能;

      GUI、UGUI是unity内置的绘制界面工具;

      UGUI在unity4.6以后才有,以后很有机会替代NGUI;

      GUI的成像原理是基于表层的,所以执行效率非常的低,并且没有提供复杂的UI的接口;

      而NGUI 通过摄像机直直的照射在一个平面中,在平面之上再去绘制自己的UI,所以它的执行效率会非常高

3、最佳学习方法:实践 + “看源代码(详)” or “看API文档(略)”

4、环境搭配

      把NGUI文件夹复制到Assets目录下,或Import Package->Custom Package->ngui_free.unitypackage;

      等下刷新,菜单栏上就多了NGUI选项,可以使用了;

5、它有5个目录,分别针对不同功能:

       /Editor:        “编辑器”,实现了菜单NGUI的功能,可以研究其代码,例如UIAtlasMaker.cs制作图集

       /Interaction:“交互类型”控件,例如UIButton

       /UI:               “显示类型”控件,例如UILabel

       /Internal:     “工具库”,封装了很多常用工具,例如NGUITools.FindChildGameObject()

       /Tweening: ”渐变操作库“,封装了很多渐变操作的接口,例如TweenPosition.cs用于位置的渐变

6、事件响应方式

     本质:BoxCollider监听触摸事件,并广播给同GO上的其它组件,组件执行对应的On***()方法,

                 On***()方法是MonoBehavior里的,所有继承它的组件都可以用,只是Unity不告诉你;

                 有哪些On***()可参考NGUI的UIEventListener.cs;

     方1(最优&简单&强大):BoxCollider + 组件脚本(例如UIEventListener)

              只要把逻辑放到脚本的On***()方法里,就会被执行;

              例如:UIEventListener.Get(**Go).onClick = ButtonClick;

     方2:UIButton:BoxCollider+UIButton;

               可实现最好的按钮效果,例如按下、点击、无效时的表现效果;

               初始化UIButton/Notify响应事件的2种方法:

                   1)EventDelegate.Add(btn.onClick, Handler);

                   2)手动创建一个Go,把脚本挂上去;把GO挂到UIButton/Notify,

                          就可以选择该Go上对应脚本的方法作为相应函数

     方3:使用UIButtonMessage:BoxCollider+UIButtonMessage;UIButtonMessage组件的参数设置:

              Target:接收按钮消息的游戏对象。Function Name:接收按钮消息的方法,拥有这个方法的脚本

              必须绑定在上面Target对象身上,而且Target对象上所有脚本的该方法都会被执行。Trigger:触发

              的事件,OnClick显然是一次点击。Include Children :是否让该对象的所有子对象也发送这个点击事件。

7、研究各个控件脚本

[控件的最佳学习方法:花1,2个小时看源代码,配合实践]

1)UICamera

     2)UIWidget

     3)UIAnchor自适应组件

           它可以设置一个锚点,然后规定其所在GO与锚点的相对位置不变。

          设置Anchors的Type为Unified,然后在Target中选定锚点对象,接着进行适配。

     4)UISprite

      九宫格图片:作用:节约图片资源

                                   步骤:Type为Sliced,给图集里的图片切九宫格

     5)UILabel

     6)UIScrollView

     7)Tween动画

=================================================================

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值