ngui unity_unity3d插件ngui简介 - CSDN
精华内容
参与话题
  • < Unity 3D专栏 >NGUI插件基础教程(一)

    千次阅读 2012-08-22 00:23:51
    NGUIUnity的顶级插件,做出的菜单很牛,性能会比较好一些; 可以把它当成2D的sprite直接做成一个游戏。 网上查了不少资料,感觉还挺全,O(∩_∩)O哈哈~。 简单学习一下: 一、创建你的界面; 二、精灵Sprite...

    最近接触到2D,偶尔发现NGUI,非常强大,非常好用,学习,总结先。

    NGUI是Unity的顶级插件,做出的菜单很牛,性能会比较好一些;

    可以把它当成2D的sprite直接做成一个游戏。

    网上查了不少资料,感觉还挺全,O(∩_∩)O哈哈~。

    简单学习一下:

    一、创建你的界面;

    二、精灵Sprite;

    三、Slicing Sprite;

    四、拼贴精灵;

    五、标签;

    六、按钮;

    七、滑块;

    八、复选框;

    九、输入框;

    十、三位界面。

     

     

     

    开始吧!!!

     

     

    一、创建你的界面

    1.创建一个新场景.
    2.选择并删除场景里的MainCamera.
    3.在NGUI菜单下选择Create a New UI,会打开UI创建向导.
    4.在创建向导中你能更改UI的基本参数,现在我们选Default layer.点击Create Your UI 按钮.
    5.就这样,你的UI创建好了.

     

     

     

     

    如果在一个已存在NGUI的项目中你要跳过第二步,并且你要选择一个不同的UI层,你还要确保非GUI相机不渲染UI层.

    在做具体UI控件之前,我们看看UI向导为我们做了什么.

    1.在2D的根对象上有个UIRoot脚本.这个脚本会重新调整游戏对象符合你的屏幕高度,有自动和手动选择高度.
    2.Camera对象包含Camera和UICamera脚本.UICamera脚本包含NGUI的时间系统.



    3.Anchor包含UIAnchor脚本.虽然这个脚本可以附加给控件,但在这里可以避免Windows机器上半个像素偏移的问题.
    4.Panel对象有UIPanel脚本呢,UIPanel是一个容器,它将包含所有UI小部件,并负责将所包含的部件组合优化,以减少DrawCall.

    同样你可能还注意到目前自动帮你选中了Panel对象,也就是说下面添加的所有部件都将在作为它的子对象.

     

    二、精灵Sprite

    添加一些控件,NGUI -- 选择Create a Widget.


    这个向导会指导你建立一些基本的控件.需要选择所实用的Atlas和字体,因为是新建的项目,所有按下Atlas和Font按钮没有效果,相反会自动复制为你最近使用的元素.我们这里先选择Atlas为SciFi Atlas,字体为SciFi Font-Normal.

    接下来在Template选择创建什么类型的控件.这个的模板只是帮助你开始创建,当你真正使用NGUI的时候.你会经常用这个向导创建控件的基本体.

    现在,让我们创建第一个控件.

    1.假设我们Atlas选择的是SciFi Atlas,我们给Sprite选择Dark.
    2.点击Add To按钮,(如果按钮是灰色的,那是因为你没有选择Atlas).
    3.你的Sprite现在已经创建并选中了.不过它非常小,让我们用Transform来调整它符合我们的需要.

    一个值得注意的事是同一个atlas中创建控件不会响应Z轴变换,不过你可以调整Depth参数来调整他们的前后次序.如果后面你用了多个atlase或者多个UI面板,那么你就可以去调整Z轴变换.

    你可以尝试添加更多的控件,比如加入一个Sliced Sprite(一个含有9个切片的Sprite,创建固定边框的控件最佳选择),一个Tiled Sprite(一个Sprite缩放填充整个区域)和Filled Sprite(每个Sprite都会有一个单独的参数来控制那些是可见的,常被用来做进度条或者滚动条).如果你找不到它们也没关系,后面的教程将讲解它们.

     

    三、Slicing Sprite

      9个片面。

    1.选择Panel对象,用控件向导添加一个"Drak"的Sliced Sprite.什么叫9-slicing?查看这里:http://www.adobe.com/designcenter/video_workshop/html/vid0204.html
    2.调整缩放为(500,500,1).
    3.添加另外一个Sliced Sprite并设置缩放为(500,40,1).
    4.更改第二个sprite的位置到(0,230,0).
    5.更改Sprite的Dark为Light.
    6.向下图一样调整两个sprite的颜色.
    7.调整Depth,让彩色的sprite在大的sprite前面.

     

    四、拼贴精灵;

     

    1.选择Panel对象,添加Tiled Sprite,并选择Honeycomb sprite.
    2.设置它的位置为(0,-19,0)和缩放为(494,457,1).
    3.同样你要设置深度调整前后次序.

    可以按照自己的意愿调整它的颜色使他看起来更好.

    你可以在任何时候通过选择Panel对象中的Debug Info的Geometry项来查看创建的控件的几何网格.

    添加了这么多东西,目前依旧仅有一个Draw call.

     

    五、标签;

    六、按钮;

    七、滑块;

    八、复选框;

    九、输入框;

    十、三位界面。

     

    展开全文
  • unity Ngui

    2017-04-12 19:12:37
    看了下贴图没啥问题,也不是因为贴图压缩的问题,但是这条黑缝总是存在,然后想到这条黑缝很可能是采用uv的时候将uv采到了sprite和其他图的接缝处,然后在跟着看了下NGUI计算uisprite的uv的代码,发现ngui的计算确实...

    的项目中大量使用了将sprite镜像拼接的方式来做底板,结果同事发现有的时候拼的时候中间会出现一个莫名的黑缝,如图:



    看了下贴图没啥问题,也不是因为贴图压缩的问题,但是这条黑缝总是存在,然后想到这条黑缝很可能是采用uv的时候将uv采到了sprite和其他图的接缝处,然后在跟着看了下NGUI计算uisprite的uv的代码,发现ngui的计算确实存在着严重的问题,NGUI是这样计算一个sprite四个顶点的uv的

    static public Rect ConvertToTexCoords (Rect rect, int width, int height)
    {
    Rect final = rect;


    if (width != 0f && height != 0f)
    {
    final.xMin = rect.xMin / width;
    final.xMax = rect.xMax / width;
    final.yMin = 1f - rect.yMax / height;
    final.yMax = 1f - rect.yMin / height;
    }
    return final;
    }

    这段代码的计算方式完全是错误的,其中width和height是atals大图的尺寸,rect是sprite在atals大图上的区域,可能作者对uv采样的计算尤其是uv坐标的区间并不是十分详细的了解,当然这个很多人可能都不全然了熟于心。 


    这里是因为有几个概念没有明确:uv的坐标范围,texture的坐标范围,采样的概念。

    首先uv的坐标范围是这样的


    texel的uv以左上角为0 ,右下角为1,也就是说第一个像素中央位置的uv是0.17 0.17

    再看一张texute图片的坐标范围


    可以看出他们的坐标范围是不一样的,这样在采样贴图颜色的时候,会出现下面的情况


    某些像素可能恰好采到边缘处,这样就会根据采样策略进行插值,点采样就直接去最近的像素,线性采样就取上下左右四个整数值加权平均。


    回头看下ngui的算法,假设一个atlas的大图如下,左上角两个像素是一个sprite


    当我们使用左上角的这个sprite的时候,按照ngui的算法,这个矩形的uv应该是

    这样的话,对于我们的左上角和右下角的那两个顶点,当他们采样的时候,变落入了边界上,由于线性采样,就会在右边看到一个橘色和白色的混合平均色,即一条杂边。

    如何解决?我们需要线性采样来保证中间像素的质量,但是对于边缘我们需要保证他们的uv严格落入sprite的区域而不能落入边界。

    所以我修改了ngui这段计算uv的错误代码,修改后,这个sprite四角的uv成为下图,原理是把原先uv落入的区间(蓝色)缩短为新的区间(红色)。具体修改的代码因为项目代码的保密我就不贴了,但是具体的原理都在这里了。


    看一下修改后的拼接效果,天衣无缝~~



    其实这个问题早在上一个项目《暗黑血统》里面就遇到过多次,只是那时比较忙没细追究没去眼睛ngui代码,这次决定看了一下,其实就是个贴图采样的小问题,看来遇到问题还是要刨根问底才行

    展开全文
  • Unity3d NGUI2019

    2020-07-14 21:58:52
    这是我自淘宝上买的,感觉挺好用的,需要的自取 链接:https://pan.baidu.com/s/1iq5q3NTcfaX7yhRUWR_iag 提取码:wvrs 求打赏(哈哈哈)

    这是我自淘宝上买的,感觉挺好用的,需要的自取

    链接:https://pan.baidu.com/s/1iq5q3NTcfaX7yhRUWR_iag 
    提取码:wvrs

     

     

    求打赏(哈哈哈)

    展开全文
  • 2018年5月版本,适合Unity2017~2018,NGUI插件2018年5月版本,适合Unity2017~2018,NGUI插件
  • Unity-NGUI插件

    2020-05-10 18:23:45
    一、NGUI – UIRoot (窗口) NGUI对于每一个UI场景,都是以一个UIRoot为UI游戏对象树的根的 UIRoot游戏对象的属性只有4个,分别是缩放规则,手动高度,最小高度和最大高度。 UIRoot是以2为屏幕宽度的 int height = ...

    一、NGUI – UIRoot (窗口)

    NGUI对于每一个UI场景,都是以一个UIRoot为UI游戏对象树的根的
    UIRoot游戏对象的属性只有4个,分别是缩放规则,手动高度,最小高度和最大高度。

    image

    UIRoot是以2为屏幕宽度的
    int height = Mathf.Max(2, Screen.height);
    manualHeight = Screen.height * 1024 / Screen.width; //基于宽度的屏幕分辨率自适应

    二、NGUI-Lable

    image

    三、NGUI – UIPanel

    image

    四、NGUI – UISprite

    image

    五、NGUI - Tween 动画

    Tween的动画播放API:

    PlayForward(); // 正播动画
    PlayReverse(); // 倒播动画

    image

    (1)Tween Alpha : 透明动画

    image

    (2)TweenColor : 颜色动画

    image

    (3)TweenPosition: 位置动画

    image

    六、NGUI - Slider- 滑块

    image

    七、NGUI - Typewriter Effect(打字机效果)

    image

    八、NGUI-PopupList

    选择效果

    image

    image

    九、NGUI-Togle组件

    image

    image

    十、NGUI-UIInput

    image

    十一、NGUI-如何实现技能CD效果

    image

    十二、NGUI-移动UI控件

    image

    十三、NGUI-缩放UI控件

    image

    十四、NGUI - Scrollbar

    image

    十五、NGUI-UIDrag Drop Item

    image

    NGUI-继承UIDrag DropItem实现拖动技能栏效果

    // 当克隆的时候,里面传递一个原始的对象
    protected override void OnClone(GameObject original)
    // 1.一开始调用
    protected override void OnEnable()
    // 2.拖动时候(按压的时候)
    protected override void OnPress(bool isPressed)
    // 3.当拖放下开始
    protected override void OnDragDropStart()
    // 4.当拖拽开始的时候
    protected override void OnDragStart()
    //5.当拖放下开始
    protected override void OnDragDropMove(Vector2 delta)
    // 6.拖拽进行当中
    protected override void OnDrag(Vector2 delta)
    // 7.结束拖拽
    protected override void OnDragDropEnd()
    // 8.当我拖拽释放的时候(释放到那个物体上)
    protected override void OnDragDropRelease(GameObject surface)
    // 9.结束拖拽
    protected override void OnDragEnd()
    // 10.当拖拽不可用的时候
    protected override void OnDisable()

    展开全文
  • 正常情况下, 在调节Lable文本自适应的时候,需要在Overflow下拉菜单里选择需要的自适应方式。就可以了。 坑的情况下。 在你设置了Anchors之后再去设置Overflow 自适应就会发现,可以设置没有问题,界面也会发生变...
  • HTML Engine for NGUI Unity GUI.unitypackage v1.3.50
  • UnityNGUI下载与导入

    万次阅读 多人点赞 2018-09-10 21:07:27
    Unity3D插件NGUI的下载和导入。
  • NGUI unity插件

    2012-04-19 20:25:59
    unity的一个插件,超方便,超强大的一个插件。
  • unity nGUI

    2013-10-07 23:42:28
    unity3d 插件nGUI
  • Unity入门之资源的导入、NGUI的使用

    千次阅读 2017-06-06 18:54:47
    1.直接将.unitypackage的包拖进下面右侧的Assets部分 2.选中所需要导入的图片,点击import 3.然后资源就被导入到了unity中,可以在Project视图查看 4.创建Scene, File-new Scene-->Ctrl+S-->路径名/场景名-->...
  • Unity NGUI Tween的用法

    千次阅读 2015-04-14 17:06:18
    unity版本:4.5 NGUI版本:3.6.5  参考链接:http://www.colabug.com/thread-1029974-1-1.html,作者:COLABUG.COM 橘虞  http://blog.csdn.net/asd237241291/article/details/8507817,作者:CSDN 脱莫柔  ...
  • 情景: ...Unity的Prefab Mode强制在对Prefab节点进行删除/移动时 需要在Prefab Mode系统中才能进行,因此若是在NGUI5.6升级Unity到2018.3 就会出现 在Scene场景中无法删、移预设,但是进入Prefab Mod
  • unityNGUI

    2017-09-21 15:35:39
    unityNGUI包;工具类的;很好用的 。
  • NGUI is a very powerful UI system and event notification framework. Features - Editor integration, WYSIWYG - Localization, data binding, delegates, events - Supports all platforms - Make UIs that...
  • 大家好,这我鄙人第一次真真正正的写博文。这篇文章主要是记录一下unity3d中NGUI依赖关系打包以及资源的动态加载的一些事,其中文中有些内容是借鉴和参考了网上一些博主的文章,如有不足之处,希望看guan
  • NGUI_3.11.4版本不大支持Unity高版本,不能很好的兼容。 当导入NGUI_3.11.4时会出现以下各种报红和警告: 打开其中一个报红的代码: 解决方法: 通过网上查询相关资料,用WindowsPlayer和OSXPlayer替代...
  • Unity3D之NGUI基础2:使用NGUI

    千次阅读 2019-02-07 16:53:43
    一、NGUI层次关系 先创建一个用于显示文字的“游戏物体”:NGUI→Create→Label 之后就可以看到NGUI的默认层次结构如下: UI Root:所有的 NGUI 元素都是 UI Root 的子物体 Camera:用于渲染 NGUI...
  • Unity 3D NGUI 2017版本

    2018-09-04 15:28:27
    可在Unity2017版本的软件里面可以导入的NGUI插件,如果不是Unity2017版本的开发软件不用下载了。
  • 适用于unity3d2018的 NGUI插件 在Unity 项目中,Project视图下ASSETS文件夹上,右键 【Import Package】-->【Custom Package】,选择刚刚下好的 NGUI3.12.1插件包。然后,全部导入。
1 2 3 4 5 ... 20
收藏数 8,790
精华内容 3,516
关键字:

ngui unity