添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
备案 控制台
学习
实践
活动
专区
工具
TVP
写文章
1 0

海报分享

UnityNGUI的使用

NGUI

做UI的框架,第三方插件

基础组件简介

1.Widget相当于unity中的空物体 2.Anchor锚点(用于做UI自适应) 3.Panel画布 4.ScrollView可滑动区域 5.Grid排版控制行列间距等

屏幕自适应 :大小自适应UIRoot缩放模式实现,位置自适应锚点实现。

Collider需要交互的UI都要加Collider Botton按钮 Toggle拖拽框 Solider滚动条

Tween动画相关

AtlasMaker图集制作器 FontMaker字体制作器

UI Root

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深度值优先于元素的深度值

UILabel

Overflow 字的填充方式 Alignment 填充方式 Gradient 颜色梯度 Effect 字体效果 Spacing 间距

UIToggle

StartingState 初始状态 Group 值的Toggle组,来控制一组Toggle

UISlider

Value:设置起始进度百分比 Alpha:控件的透明度 Steps:进度条平均分割的块数 Foreground:进度条设置 Background:背景色设置 Thumb:拖动拇指块设置 Direction:进度条方向 Notify:进度百分比提示,需要绑定一个label

UIScrollView

ContentOrigin:控制panle相对ScrollView的位置 Movement:控制Scrollview滑动的方向 DragEffect:拖动效果 ScrollWheelFactor:鼠标滑轮滚动速度MomentumAmount:滑动后自动滑行距离 RestrictWithinPanel:控制panel会不会画出ScrollView

UIPopupList

Options:设置下拉列表中的元素 Default:默认显示的值 Position:列表显示位置 OnValueChange:用于绑定Label,显示当前的选择值。

Tween动画

UIPlayTween :控制的物体含有两个以上Tween动画的使用使用,或者要控制多个动画中的一部分的时候使用.

AltasMaker打图集

将单个图片制作成一个Altas图集 通常我们将生成的图集(Advanced中)取消勾选GenerateMipMap,来减少图集大小.

FontMaker打字体

将ttf格式的资源拖入Unity,用FontMaker打开 Type:BitMap只能生成预先选择好的字要预先选择size大小,Dynamic可以动态生成.

UISprite

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

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>();

UGUI

Unity官方内置的UI框架

本文参与 腾讯云自媒体分享计划 ,欢迎热爱写作的你一起参与!
本文分享自作者个人站点/博客: https://www.jianshu.com/u/537f8148db2c 复制
如有侵权,请联系 cloudcommunity@tencent.com 删除。