做UI的框架,第三方插件
1.Widget相当于unity中的空物体 2.Anchor锚点(用于做UI自适应) 3.Panel画布 4.ScrollView可滑动区域 5.Grid排版控制行列间距等
屏幕自适应:大小自适应UIRoot缩放模式实现,位置自适应锚点实现。
Collider需要交互的UI都要加Collider Botton按钮 Toggle拖拽框 Solider滚动条
Tween动画相关
AtlasMaker图集制作器 FontMaker字体制作器
UIRoot用于缩放UI
ScalingStyle缩放模式:来进行UI大小的自适应Flexible大小不变,Constrained进行大小自适应,ConstrainedOnMobiles只在移动端进行大小自适应. 使用自适应可以在不同分辨率下,UI的相对大小保持不变.
UICamera用于事件监测
让带有这个组件的摄像机渲染出来的物体能够接受NGUI事件 EventMask:事件层遮罩。用来管理相应那些层的物体的事件。
UIPanel提供一个画布
在UIPanel中我们不能将不同的Panel的Depth设置为同一个,否则会出现警告. Alpha控制透明度 Depth控制深度 Clipping剪辑窗口 RenderQ渲染顺序
UISprite先将将图片加载成图集
先选择Atlas在选择其中的Sprite 1.图片模式Type:在有背景框需要拉伸的时候选择Sliced,Tiled将以原图片的大小填满整个Sprite,Filed可以实现技能冷却 2.Filp:来实现反转 3.Widget:中心点,Depth深度值越大能覆盖后面的,Size图片大小,Aspect宽高比例. 4.Anchors:锚点选择Unified,如果我们的UI在某一个遍或者角,我们锚点不能设置4个方向,在中间的将锚点设置为中间 5.depth:深度值不能相同,UIPanel深度值优先于元素的深度值
Overflow字的填充方式 Alignment填充方式 Gradient颜色梯度 Effect字体效果 Spacing间距
StartingState初始状态 Group值的Toggle组,来控制一组Toggle
Value:设置起始进度百分比 Alpha:控件的透明度 Steps:进度条平均分割的块数 Foreground:进度条设置 Background:背景色设置 Thumb:拖动拇指块设置 Direction:进度条方向 Notify:进度百分比提示,需要绑定一个label
ContentOrigin:控制panle相对ScrollView的位置 Movement:控制Scrollview滑动的方向 DragEffect:拖动效果 ScrollWheelFactor:鼠标滑轮滚动速度MomentumAmount:滑动后自动滑行距离 RestrictWithinPanel:控制panel会不会画出ScrollView
Options:设置下拉列表中的元素 Default:默认显示的值 Position:列表显示位置 OnValueChange:用于绑定Label,显示当前的选择值。
UIPlayTween:控制的物体含有两个以上Tween动画的使用使用,或者要控制多个动画中的一部分的时候使用.
将单个图片制作成一个Altas图集 通常我们将生成的图集(Advanced中)取消勾选GenerateMipMap,来减少图集大小.
将ttf格式的资源拖入Unity,用FontMaker打开 Type:BitMap只能生成预先选择好的字要预先选择size大小,Dynamic可以动态生成.
sp = gameObject.GetComponent<UISprite>();
//设置图集
sp.atlas = atlas;
//修改图片
sp.spriteName = "back";
//设置图片填充模式
sp.type = UIBasicSprite.Type.Filled;
sp.fillDirection = UIBasicSprite.FillDirection.Horizontal;
sp.fillAmount = 0.5f;
//设置图片颜色
sp.color = Color.red;
uILabel = GetComponent<UILabel>();
uILabel.text = "Who is your daddy??";
uILabel.fontSize = 60;
uILabel.effectStyle = UILabel.Effect.Shadow;
通过委托事件在NGUI中给Texture添加点击事件 使用UIEventListener的静态方法Get()进行事件的绑定
/// <summary>
/// Get or add an event listener to the specified game object.
/// </summary>
static public UIEventListener Get (GameObject go)
{
UIEventListener listener = go.GetComponent<UIEventListener>();
if (listener == null) listener = go.AddComponent<UIEventListener>();
return listener;
}
UIEventListener.Get(btnStop).onClick = stopVideo;
给Slider添加OnValueChange的事件
uISlider.onChange.Add(new EventDelegate(silderChange));
onChange在UISlider的父类UIProgressBar中
public List<EventDelegate> onChange = new List<EventDelegate>();
Unity官方内置的UI框架