NGUI点滴

1,


NGUI的输入控件特点:

1.可以控制输入的最大字符数量

2.光标使用的字符:”carat char”

3.控制输入类型:Type

4.是否是密码输入框

5.字体颜色

6.按回车提交时要触发的函数"OnSubmit"

 

NGUI输入控件缺点:

1. 无法使用左右移动

2. 光标是”|”符号易与输入的符号相混

3. 不能点击定位

———————————————————————————————————————————————————————

2,UICamera是每个UI的重要组成部分.它负责发送Camera中所有NGUI的活动.如果场景中仅有一个Camera,要确保它附有 UICamera脚本.如果有多个相机,确保至少用来渲染UI的相机有UICamera脚本.当将这个脚本放在主相机上时,在游戏场景中的所有都将有 OnClick, OnHover, OnDrag等事件

Tooltip Delay:设定悬停与对象多少秒才执行OnTooltip事件.
如果使用Orthographic Projection相机,建议将相机的Size的尺寸设置为当前分辨率高度的一半.比如针对iPad的屏幕1024*768分辨率,就设置Size为 384.另外一种方法是保持Size是1,缩放UI的Root为该值的倒数,比如在iPad上获得完美尺寸你需要设置Root的缩放到1/384或者 0.002604167.第二种方法比较容易实行,不过物体在场景视图中照比其他物体会比较小.


3,

UIAnchor有多种用途,其中包括在多种分辨率的屏幕的相对定位.
如果你将它放在2D UI的root上,它会自动进行完美像素处理.
如果将它用于一个对象,它将辅助对象在屏幕上的定位,比如侧边或者角落.
比如放在一个精灵上,可以用来将精灵自动填满整个屏幕,比如做个背景.

HUD Camera是用来绘制该对象的相机,通常会自动选择的.
Side:设置锚点,有4个边,4个角和中心供选择.
Half Pixel Offset:让控件有半像素的位移以避免DirectX 9在Windows机器上的一个Bug.
Stretch To Fill:缩放填充,一般做背景时候会使用它.
Depth Offset:用于基于透视相机时调整计算点的深度.

Sliced Sprite(一个含有9个切片的Sprite,创建固定边框的控件最佳选择),一个Tiled Sprite(一个Sprite缩放填充整个自定义区域)和Filled Sprite(每个Sprite都会有一个单独的参数来控制哪些是可见的,常被用来做进度条或者滚动条)


提示:
如果对象有UIAnchor这个脚本,它自身的Transform将不接受你的修改,因为它受控于这个脚本.如果你希望添加基于这个锚点的位移,你可以添 加一个子对象.比如你希望有个控件始终在屏幕偏移(100,100)这个位置,你应该在层次面板做这样的结 构.UI->Anchor->Offset->Widget.
UIAnchor同样可用于非正交相机.
如果UIOrthoCamera附加到相机,用UIAnchor创建的界面将固定尺寸和位置,无论你将屏幕尺寸改成多大.







4,

Events-NGUI强大的事件系统
UIEvents-事件系统
你可以添加下面的方法脚本到控件或者带有碰撞盒的游戏对象,当然也可以赋予给相机,不过需要相机同时有UICamera脚本:
void OnHover (bool isOver):当鼠标移出或者悬停在某个碰撞器上的时候返回布尔值.在触摸设备上不会有作用.
void OnPress (bool isDown):当鼠标或者触摸到碰撞器发生布尔值返回.
void OnSelect (bool selected):当鼠标或者触摸从OnPress发生后的释放将会返回这个布尔值.
void OnClick():和OnSelect的产生条件相同,当点击或触摸碰撞器并且没有发生拖拽时候触发.
void OnDrag (Vector2 delta):当移动鼠标或者触摸按下时候位移超过特定阀值时触发.
void OnDrop (GameObject drag):当鼠标或触摸释放于从发生OnDrag的不同碰撞器伤触发.传递的参数是产生OnDrag的游戏对象.
void OnInput (string text):当一个OnSelect发生后在同一个碰撞器上触发输入.一般只有UIInput用它.
void OnTooltip (bool show):当鼠标悬停超过tooltipDelay时间后触发该命令.触摸设备上不会有作用.

可以用UICamera.lastCamera找到谁发出的事件,可用UICamera.lastHit得到谁接受这个事件,以及用UICamera.lastTouchPosition得到触摸或屏幕的位置

5,UIRoot类主要是为了确保你的GUI对像缩放倍数为 2/(Screen.height);而UICamera则是NGUI插件的基础核心类,这个类中定义了一系列的鼠标、键盘、触屏等动作的响应操作,场景中允许有多个UICamera存在也可以和Unity的主Camera共存;UIAnchor这个类是为了固定你的对象在屏幕中的位置,例如你将UIAnchor的属性Side设置为Center,则无论屏幕规格是多少UIAnchor里的对象在游戏中都会出现在屏幕的正中间。

6,Camera选项中有None,Simple2D,Advanced3d选项,分别用于创建不带camera的界面(这里如果已经有一个UI界面,我们只是想添加一个新的界面,可以选择这个),简单的2D界面(此选项没有Z轴效果),高级3D界面(此选项下的界面有Z轴效果,并且可以3D旋转,以此选项创建的UI有自适应分辨率的功能)。



7,

Correction主要用于修正因图标像素是奇数而出现的问题。
Color Tint可以在图标颜色的基础上为图标着色,
Clipboard是剪贴版的颜色,当我们选择一个Cilpboard颜色后,点击Paste可以将颜色粘贴到ColorTint的颜色上。
Spirit Type表示要创建的Spirit平铺方式,包括Simple,Sliced,Tiled,Filled。如果图标较小,我们需要平铺很大,但是又不想看出重复,可以选择sliced。

Filled选项下又包括Fill Dir(填充方向),FillAmount(填充量),Invert Fill(反转填充)三个选项,这三个主要用于修改填充为360旋转填充,水平,垂直填充等

8,一 UIRoot 建议添加一个Layer专门用来存放GUI对象,创建成功后可以看到有个UIRoot对象,UIRoot最主要的属性是 manualHeight,这个组件会确保它的所有子对象的缩放倍数是2/ manualHeight,如果你勾选了Automatic则缩放倍数会2/屏幕高度。要注意的是这个插件不能和UIOrthoCamera这个组件一起使用。

9, listView 先创建一个2D的游戏平面。接着给Panel面板绑定游戏组件,Unity导航菜单栏中选择Component->NGUI->Interaction->Grid,它主要设定ListView中每一个item的属性。继续在Unity导航菜单栏中选择Component->NGUI->Interaction->UIDraggablePanel,它主要设定listView的触摸区域以及与拖动条事件等。

Panel面板中一些需要注意的属性。

UIGrid(Script):Arrangement 选择Vertical表示这个ListView表示纵向,这里如果选择Horizontal表示该ListView是横向的。 

Cell Width:ListView中每一个item的宽度。

Cell Height:listView中每一个item的高度。

UIDraggable Panel(Script):选项中的Scale非常重要,这里设置y = 1  表示ListView只支持纵向的拖动,如果设置X=1表示列表只支持横向的拖动,如果两个都=1表示列表同时支持横向与纵向的拖动。

Horizontal Scroll Bar 与 Vertical Scroll Bar表示横向或纵向的拖动条与listView结合,然而这里我们无需写一行代码,它会自动帮我们计算,将你的ListView与拖动条结合。


10,

NGUI类库说明

     ~/UI/

  1. UIRoot, 控制其下控件的缩放方式,V2.3中可以使用Scaling Type控制,等于PixelPerfect时,当前页面高小于minimumHeight则进行缩放,其他高都是固定尺寸,大于maximumHeight则是放大;等于FixedSize时,按manualHeight为中间值,放大或缩小.

  2. UIPanel,NGUI容器,可以对其下控件进行隐藏,静态组建可以设置widgetsAreStatic提高性能.

  3. UICamera,附加在NGUI摄像机上,负责事件检测,配置按键,Layer等信息.

  4. UIAnchor,方位控制类库,首先需要设置uiCamera=NGUI摄像机才能正确的工作,使用side属性来控制显示的位置.

  5. UIAtlas,图集类库,辅助管理和选定Sprite图片和font图片集合.所有需要显示图片的地方都附加该组件.

  6. UIFont,管理字体UV

  7. UISprite,图片

  8. UISlicedSprite,背景图,自动压缩图片四周,只留填充中间部分.

  9. UIFilledSprite,可以控制动画显示图片.

  10. UITextList,列表文本框


~/Interaction/

  1. UIButtonColor,对象颜色控制,tweenTarget控制的UIWidget对象,Duration 动画持续时间,hover移上颜色,pressed点击颜色

  2. UIButtonScale,对象大小控制,tweenTarget控制对象的Transform,hover移上的大小,pressed点击的大小

  3. UIButtonPlayAnimation,动画播放控制,target控制的Animation, trigger 触发的类型,playDirection 控制播放的方向,Forward向前,Reverse逆转,Toggle交替,

  4. UIButtonTween,控制带UITweener的对象播放动画.

  5. UIButtonKeys,可以使用箭头键和Tab键选中对象.

  6. UIDraggablePanel,附加在panel上,可以指定一个滚动条来控制panel其下内容的限制,panel需要设置clipping:soft/alpha clip;

  7. UIDragObject,使附加可以响应鼠标点击拖动,Tanget 该属性如果不为空,则附加对象不会被拖动,tanget上指定的Transform对象会被拖动.


~/Tweening/

  1. UITweener,间隔动画的基类,所有间隔组建都继承该类,用于执行update()

  2. TweenPosition,TweenScale,TweenRotation,控制对象位置变化,Method 间隔的方法/模式,Style一次/循环/乒乓,Delay 等待时间,Duration 持续时间.

  3. TweenTransform,同上,不过参数需要赋值某对象的Transform,一般使用空对象即可,可以同时应用到Position,Rotation,Scale.



~/Examples/../Other

  1. PanWithMouse,根据鼠标反向转动附加对象,Degrees 偏移最大度数(Vector2), Range 灵敏度 越小越快.

  2. Spin,控制附加对象旋转,rotationsPerSecond 每帧旋转的弧度数(按自身坐标系).

  3. SpinWithMouse,使用鼠标控制对象的旋转.Speen 旋转速度,target 旋转目标 为空时默认自己.

  4. TypewriterEffect,按时间显示文本, charsPerSecond 文本显示时间.

  5. ChatInput,将UIInput输入的文本绑定UITextList对象.

  6. UIItemStorage,组织商店表格,maxItemCount 最大数量,maxRows最大行数,maxColumns最大列,template组成商店表格的prefab, Spacing 组成对象的间距(需要包含自身宽度),Padding 边框宽度.



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值