Unity小功能NGUI

Unity之NGUI插件(一)

2018-01-17  本文已影响545人  Joe_Game

前言:关于Unity中关于UI的插件,我们最开始学的是UGUI,是Unity自带的UI系统,而在Unity版本还没更新出UGUI之前,除了NGUI没有一个更好些的插件,所以人们不得不去选择NGUI去制作UI,但随着Unity做出了自己的UGUI系统之后,人们更多是使用Unity自带的UI系统,也就是UGUI,这里我也只是简单的认识一下,毕竟前面学习了UGUI,它们很相似,好了,废话不多说了


下载NGUI

在Unity官网的Asset Store中下载UGUI


看NGUI的例子

在学习一个插件之前,如果快速的了解这个插件呢?最简单的方式就是查看插件自带的一些例子,通过看这些例子,了解基本的一些实现的功能,以及脚本


Prefab Toolbar(预设体工具栏)


Widget Wizared(控件工具)


创建新的图集

这样,包含选中精灵的图集就诞生了

注意:在NGUI中,不能像在UGUI中直接拖入精灵,而是必须要先设置图集,再从图集中选择精灵


Anchor (锚点、锚框)


UI Root脚本


UI Panel脚本

先比较UI Panel的深度再去比较UI控件的深度
UI Panel相当于是一个容器,所有的UI控件都在 UI Panel中才能被显示

Camera脚本


Panel Tool(面板工具)


Draw Call Tool(渲染调用工具)


触发事件方法一:在编辑器中使用NGUI触发事件

-功能:点击小书按钮,精灵移动到UI Root中间位置;点击叉号按钮,返回起始位置


触发事件方法二:通过代码使用NGUI触发事件

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class BtnEvent : MonoBehaviour
{

    public UIButton BtnOpen;
    public UIButton BtnClose;
    public UISprite BG;
    private TweenPosition tp;

    private void Awake()
    {
        tp = BG.GetComponent<TweenPosition>();
    }

    private void OnEnable()
    {
        BtnOpen.onClick.Add(new EventDelegate(ClickBtnOpen));
        BtnClose.onClick.Add(new EventDelegate(ClickBtnClose));
    }

    private void OnDisable()
    {
        BtnOpen.onClick.Remove(new EventDelegate(ClickBtnOpen));
        BtnClose.onClick.Remove(new EventDelegate(ClickBtnClose));
    }

    void ClickBtnOpen()
    {
        tp.PlayForward();
    }

    void ClickBtnClose()
    {
        tp.PlayReverse();
    }
}

跟UGUI的触发事件方法很相似


UI Sprtie脚本


UI规范


NGUI控件

跟UGUI中的类似,这里就不多说了



实现功能:一个按钮按一下打开,再按一下关闭

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Test03_1 : MonoBehaviour {

    public UIButton Btn;
    public UISprite BG;
    private TweenPosition tp;
    private bool IsOpen=false;
    

    private void Awake()
    {
        tp = BG.GetComponent<TweenPosition>();
    }

    private void OnEnable()
    {
        Btn.onClick.Add(new EventDelegate(ClickBtn));
    }

    private void OnDisable()
    {
        Btn.onClick.Remove(new EventDelegate(ClickBtn));
    }

    private void Update()
    {
       
    }

    void ClickBtn()
    {
        if (IsOpen)
        {
            tp.PlayReverse();
            IsOpen = false;
            print("关闭");
        }
        else
        {
            tp.PlayForward();
            IsOpen = true;
            print("打开");
        }
    }

    

}

最后:NGUI的第一部分内容就到这里,由于前面学习了UGUI,NGUI中有很多类似的地方,相似的地方自己看就懂,主要针对了有很大区别的地方进行了讲解

上一篇下一篇

猜你喜欢

热点阅读