NGUI
coffeecato
思从深而行从简
展开
-
NGUI中的事件响应流程
引言仅对NGUI中对于事件的响应流程做一简单的总结。正文原创 2016-11-27 19:07:54 · 634 阅读 · 0 评论 -
【Unity Shader】NGUI中图标的灰化处理
NGUI图片灰化无法通过自带的功能实现。 UIButton的disable状态如下图: 如果想实现整体的灰化效果,需要改写NGUI自带的shader文件,修改后的效果如图: 修改NGUI原生的Unlit - Transparent Colored.shader文件Shader "Unlit/Transparent Colored"{ Properties {原创 2017-03-16 00:30:29 · 1786 阅读 · 0 评论 -
【NGUI】限制UIDargObject的拖拽区域(技能双摇杆的实现)
引言 最近在开发项目中的双摇杆功能,即利用摇杆释放指向性或者区域性的技能。之前介绍过利用NGUI开发的虚拟摇杆功能Unity3d中利用NGUI实现虚拟摇杆,本次在上文的基础上介绍一下如何限制滑块的移动区域。需求分析 在拖拽滑块的基础上,增加区域限制。拖拽到限制区域边缘时,滑块会有被拉回的动作。先看效果图 黑色区域为panel的区域,可以看到拖拽滑块基本被限制在panel区域内。如何实现原创 2017-03-10 00:43:49 · 1470 阅读 · 0 评论 -
【Unity3d基础】Unity3d中利用NGUI实现虚拟摇杆
引言最近的项目中需要开发虚拟摇杆功能,由于历史原因对于FingerGesture较为熟悉,故没有采用EasyTouch。NGUI中的UIDragObjectNGUI中有一个UIDragObject.cs组件,添加到GameObject,即可实现简单的拖拽动作。其中的Target需要设置被拖拽的对象,代码注释如下: /// /// Target object that原创 2016-11-30 23:47:15 · 6653 阅读 · 0 评论 -
【NGUI源码剖析】NGUI如何优化drawcall数量
引言 接上一篇文章对UIPanel的分析。定量的分析哪些因素会影响NGUI drawcall的增减。 SortWidgets FillAllDrawCalls的部分代码 if (mSortWidgets) SortWidgets(); // 对widgets进行排序 for (int i = 0; i < widgets.Count; ++i)原创 2017-06-05 23:20:54 · 2115 阅读 · 0 评论 -
【NGUI源码剖析】NGUI的drawcall
前言 在使用unity3d开发实际的项目中,性能优化一直是一项不得不考虑的重点,而其中UI的优化又是绕不过去的坎,很多看似简单的UI为何会占用大量的cpu开销?本文以NGUI这套UI的解决方案为例,从源码出发,分析影响性能的原因,看清问题的本质,对症下药。NGUI的drawcall 在Unity中,每次引擎准备数据并通知GPU的过程称为一次Draw Call。这一过程是逐个物体进行的,对于每个物原创 2017-06-03 23:12:27 · 1880 阅读 · 2 评论 -
【NGUI源码剖析】深入理解NGUI的drawcall
引言上篇【NGUI源码剖析】NGUI的drawcall简单认识了NGUI中的drawcall。借着近来工作更替的间隙,本文在之前的基础上做一点深入的分析: - UIPanel工作流程图 - 如何生成drawcall - widgets的生成及作用 - drawcall的合并 UIPanel的工作流程 无论是UIDrawCall还是UIWidget的流程,都离不开UIPane原创 2017-07-10 18:33:57 · 4658 阅读 · 0 评论 -
【NGUI】实现半圆形进度条,技能CD效果
半圆形进度条 首先将资源图片打进atlas图集,在场景上创建一个新的sprite。资源是一张半圆形的进度条,如下图。如果要实现进度条的效果,只需实现纵向的遮挡即可。通过UISPRITE的相关属性即可实现。 下面学习一下UISprite的相关属性: Type: Smple:除了显示内容从图集里面获取外,其他都和Texture一样的绘制 Sliced:这个模式支持九宫格拉伸,让四个角落的原创 2017-02-24 00:34:21 · 2547 阅读 · 0 评论 -
【NGUI】头顶血条(2D与3D的实现)
前言 游戏中的头顶血条是一种常见的小功能,一般游戏会要求做2D的头顶血条,这是因为这样能保证UI的大小不变,图片和文字不会产生变形引起的其他效果;反过来,3D的头顶血条会由于透视的原因会有近大远小的效果,看起来会更真实。 实现 资源的制作上,2D血条与3D血条都一样,需要注意的是,实现3D血条时需要将场景camera的CullingMask选中血条所在的图层即可,同时将UI camera的cu原创 2017-05-20 17:25:06 · 5194 阅读 · 0 评论 -
使用RenderTexture实现3D模型与UI的组合显示
引言 游戏中常见的功能如角色创建选择,NPC对话等功能中,需要3D模型与UI的组合显示,该如何实现呢? 如何实现 首先想到添加一个3D camera将3D模型画出来,利用Camera中的Target Texture属性来缓存绘制的3D形象,再设置相应的位置,旋转等属性。实现环境 利用NGUI\Examples\Scenes\Example X - Character的场景来进行实验。原创 2017-06-16 21:13:19 · 8860 阅读 · 1 评论 -
Unity 与 NGUI 坐标转换原理
本文转自:Unity 与 NGUI 坐标转换原理本文转自http://blog.csdn.net/huutu 转载请带上 http://www.thisisgame.com.cn在游戏中最常用到坐标转换的就是制作人物头顶的血条/名字 之类的显示,Unity提供了摄像机以下API供我们使用:1、将世界坐标转换到屏幕坐标[csharp] view转载 2017-05-20 17:21:47 · 1299 阅读 · 0 评论 -
深入理解NGUI(Unity)显示特效的问题
原文地址:深入理解NGUI(Unity)显示特效的问题粒子特效显示差异引出问题游戏开发时常会需要在UI里显示一个特效,我们将特效在UI里显示出来后,发现效果不符合预期。该特效在普通3D场景下,效果如下:图1但在UI里效果偏差比较大:图2该特效是由多个粒子器组合而成。对于显示差异,我们对比了其中一个粒子器在渲染时的Mesh细节:图3如上图左边是正确效果,右边是UI中错误效果。原本怀疑粒子系统的运动坐转载 2017-11-10 15:03:51 · 3009 阅读 · 0 评论