UGUI之UI的深度问题】的更多相关文章

学过NGUI的都知道,NGUI的深度是通过值来控制的.Panel也是UI也是,如果空间太多,布局复杂UI深度的值会变得很混乱.所以在NGUI中设置UI深度时一定要多加思考.然而在UGUI控制显示顺序的深度不是值,而是位置.只要通过管理UI控件的位置,就可以很好的管理UI的显示顺序. 我们可以看到,当button1在下,button2在上时,scene中的button为button1靠外,button2靠里.button2的深度大于button1的深度.如果要调换他们的显示深度,同样,也只需要在H…
基于UGUI的UI框架 一.Demo展示 二.关键类 MonoSingle 继承MonoBehaviour的单例基类:做了一些特殊处理: 保证场景中必须有GameInit名称的物体,所有单例管理器脚本都挂在该物体上: 继承单例基类后,需要私有化构造: public class MonoSingle<T> : MonoBehaviour where T :MonoSingle<T> { protected static T instance; public static T I {…
1.调用transform.SetAsLastSibling();将该UI的显示层级调到最上面. 调用transform.SetAsFirstSibling();将该UI的显示层级调到最下面. 2. 如下图所示,在深入一下渲染绘制的顺序 UIMain 和 UINext 是同级目录,因为UINext 在UIMain下面 所以优先渲染UIMain这样UINext将在屏幕最前面.UISub原理一样,由此可得出. 精灵显示从前面的 到后面的排序   NextB > NextA >SubB>Sub…
法一: 利用Render Texture 在project面板创建 在面板中在创建一个Camera,对准要显示的模型 对Render Texture 进行设置 在Canvas下创建RawImage 就可以显示如图: 第二种方法: 特别简单 可以得到一样的效果.…
记录一下,或许同样使用深度的NGUI以后会用到. 目前的项目的UI是用Stage3D实现的,采用了类似NGUI填写深度来确定覆盖关系,但同时可以使用的深度是有一个固定范围的,导致的问题是如果UI过多深度可能就会不够用,对于这种情况可以写段代码进行深度的压缩,比如如果两个图片相互之间不会重叠则可以使用同一个深度. 相对于传统的显示列表,每个深度都唯一的情况不同,压缩后的深度可以有多个是相同的,但是相同深度的图片不能重叠,否则会出现随机覆盖的问题. 压缩深度的前提条件是所有UI的遮罩顺序都必须是提前…
正常情况下,UGUI设置UI的localposition可以直接赋值 UIxxx.rectTransform.localPosition = ] / 2f, , ); 运行后在Unity的Inspector面板可以得到正确的().但如果 UIxxx.rectTransform.SetParent(GameObx]); UIxxx.rectTransform.localPosition = ] / 2f, , ); 运行后得到的坐标值是错误的.正确的做法: UIxxx.rectTransform.…
Cavas: 1.Render Model设置为:Screen Space- Camera.如果想在UI前面加特效我可以在创建一个摄像机(UIForward)深度大于这个UICamera就行了. 2.Canvas Scaler: (1)UI Scale Mode :设置Scale With Screen Size 表示以宽度为标准缩放: (2)Reference Resolution设置设计分辨率,美术出图根据这个设置出: (3)Screen Match Mode 选择 Expand 这个就是U…
Rect Transform 我们都知道,Unity3D中所有的GameObject都必须要携带一个Transform组件,且该组件无法移除,那么作为UI显示的GameObject则不是携带Transform而是使用Unity3D专门为UI组件设计的Rect Transform组件,如下: 另外说一下,Canvas Renderer也是UI组件必须携带的组件. 我们来看一下其为我们提供的功能: 位置 位置是以像素为单位,其具体的值则以锚点为准,表示和锚点距离,其中x轴从左到右的数值越来越大,y轴…
目录 1.介绍两大UI插件NGUI和UGUI 2.unity渲染顺序控制方式 3.NGUI的控制 4.UGUI的控制 5.模型深度的控制 6.粒子特效深度控制 7.NGUI与模型和粒子特效穿插层级管理 8.UGUI与模型和粒子特效穿插层级管理 写在前面 这篇笔记是整理了之前做的记录,在做项目的过程中,遇到了各种各样的界面穿插问题,界面层级混乱,比如,手机卡了或点快了,就导致两个界面相互交叉.对于界面,这应该算是一个很严重的bug,很大部分原因是整个UI框架没有从整体上考虑这个,后来决心弄清楚层级…
在商店看到这样一个例子,表示很有兴趣,他们说是用UGUI做的.我想,像这种可以随便变形的图形,我第一个就想到了网格变形. 做法1: 细心的朋友应该会发现,每个UGUI可见元素,都有一个‘Canvas Render'组件,就跟3D世界模型有'Mesh Render'以及2D Sprite 有’Sprite Render'一样,UGUI的UI元素也需要一个Render渲染出来,那么第一时间想到的就是修改Render的Mesh. 对Mesh操作不熟的可以看这篇文章 private CanvasRend…
我的思路 在移动设备上打开UI界面卡顿,等待时间长,页面白块,等等体验是很不好的.本文记录我在工作中解决UI卡顿的方法. 我主要从以下方面入手 资源量 界面打开做的操作 界面自身的逻辑 IO的读写(包括收到的网络协议数据量) 我的环境 项目类型:大型3DMMOARPG Unity3D 5.3.7 基于UGUI,UI基础框架使用KSFramework:https://github.com/mr-kelly/KSFramework 客户端配置文件通过sqlite存储(在Lua中读取数据) 测试机型:…
原创至上,移步请戳:(二)unity4.6Ugui中文教程文档-------概要-UGUI Canvas UI系统允许您快速.直观地创建用户界面(Ui).这是Unity的新 UI 系统的主要功能介绍. 一.UI Overview概要 在这篇概述中,我们就去通过 UI系统的基础知识.我们将开始介绍Canvas(画布)并将所有 UI 元素都放在里面,和使用Rect Tool和Rect Transform进行UI元素排版.然后我们来看看视觉元素像Text和Image,和交互控件,如Button按钮和S…
unity上 用 做游戏欢迎界面上通用的ui,然后导到游戏里面直接用,但发现游戏里面是用ngui的,点击ugui 的ui 会穿透过去 ngui会响应,原本模型的点击处理也会响应 我用的 unity 版本 是 4.6.3的 本来是用   EventSystem.current.IsPointerOverGameObject()   来检测点击穿透的 在pc的unity编辑器上都可以检测到.可是打包到android 上 就无效,网上有的说以前的版本可以,不知道是不是之后的bug,还是有其他的接口 在…
1. 前言 本来打算写一篇<自定义Window>的文章,但写着写着发觉内容太多,所以还是把使用WindowChrome自定义Window需要用到的部分基础知识独立出来,于是就形成了这篇文章. 无论是桌面编程还是日常使用,Window(窗体)都是最常接触的UI元素之一,既然Window这么重要那么多了解一些也没有坏处. 2.标准Window 这篇文章主要讨论标准的Window,不包括奇形怪状的无边框.非矩形Window,即只讨论WindowStyle="SingleBorderWind…
原文:[WPF自定义控件]?Window(窗体)的UI元素及行为 1. 前言 本来打算写一篇<自定义Window>的文章,但写着写着发觉内容太多,所以还是把使用WindowChrome自定义Window需要用到的部分基础知识独立出来,于是就形成了这篇文章. 无论是桌面编程还是日常使用,Window(窗体)都是最常接触的UI元素之一,既然Window这么重要那么多了解一些也没有坏处. 2.标准Window 这篇文章主要讨论标准的Window,不包括奇形怪状的无边框.非矩形Window,即只讨论W…
在Unity开发过程中,不论是3D还是2D开发都需要大量的UI界面来配合使用,用来达到更好的效果 GUI:在Unity脚本生命周期回调方法OnGUI中实现,每一帧渲染两次,在OnGUI中的GUI界面元素布局分为自动布局和自定义布局GUI自定义布局常用方法:方法调用格式: GUI.方法名(); 在使用自定义GUI布局的时候,每一个GUI控件都需要用代码去设置控件位置信息,在确定控件位置时会用到布局结构体Rect(x,y,width,height) GUI自动布局自动布局的类为GUILayout,使…
Rect Transform 我们都知道,Unity3D中所有的GameObject都必须要携带一个Transform组件,且该组件无法移除,那么作为UI显示的GameObject则不是携带Transform而是使用Unity3D专门为UI组件设计的Rect Transform组件,如下: 另外说一下,Canvas Renderer也是UI组件必须携带的组件. 我们来看一下其为我们提供的功能: 位置 位置是以像素为单位,其具体的值则以锚点为准,表示和锚点距离,其中x轴从左到右的数值越来越大,y轴…
效果图: 使用的是UGUI和DOTween 当中比較关键的是循环滑动和层次排序: 1.循环滑动:这里先如果显示五张图片.分别标记为0,1,2,3,4,那么当向左滑动时,序列就变为1,2,3,4,0,这里先保存4的位置,然后从4開始,4的位置和大小向3渐变,3的位置和大小向2渐变.2的位置和大小向1渐变.1的位置和大小向0渐变.0的位置直接变为原来保存的4的位置. 也就是说,当向左滑动时,最左端的那张图片特殊处理,其余的向左推进.当向右滑动时,最右端的那张图片特殊处理,其余的向右推进. 2.层次排…
1.NGUI中UI的深度关系(新版NGUI 3.9): 在同一个Panel中,不管同不同Altas,各个UI的顺序受Depth影响 在不同Panel中,UI的顺序受Panel的Depth影响 例如Panel_1里有个Button,Panel_1的Depth为1,而Panel_2的Depth为0,则不管Panel_2中的UI的Depth怎样,永远显示在Button之下 旧版的复杂关系在新版取消,Z轴也取消,现在不可通过Z轴设置顺序了. 2.[NGUI]如何动态添加回调函数并添加参数: // 创建新…
1,点击UI上的登录按钮,从脚本发出ioo.netmanager.SendConnet->进入CS->soketclient.sendconnet...->netmanager调用 callfunc("onsoket")又将网络通信回调到脚本,脚本通讯一切都是从OnSocket开始的.解包时如果前后两端的协议配置文件MD5不一致则重新下发,如果一致直接取本地2,RPC调用流程:分为后端调用和前端调用.后端调用:rpc_client_xxxx,这是后端向前端发起的调用.…
怎样判断是否应当使用滚动视图 所谓的滚动视图,是指一个可以滑动的视窗,视窗大小和位置固定不变,视窗内的内容用户可以通过手指滑动或者拖动滚动天来进行滚动浏览. 滚动视图的目的是为了解决同类内容过多,一个UI版面显示不下的情况.如果同类内容过多,一般可以采取设置多个页面,然后通过翻页浏览的方式来浏览,但是很明显,滚动视图会比翻页更方便,因为在移动上可以很方便地花瓶进行滚动,在PC上可以通过鼠标的滚动进行滚动. 当需要判断是否应该使用滚动视图制作UI时,可以遵循以下规律: (1)有很多同类内容一个版面…
一.引子 RT,本篇博客记录的是马三的一次解决 LuaFunction has been disposed 的bug的全过程,事情还要从马三的自研框架 ColaFrameWork 说起.最近,马三在业余时间维护了一款基于Unity的客户端自研框架,起名叫 ColaFrameWork ,寓意是希望写代码能像喝小可乐一样享受和轻松.为了在Lua层可以监听到UI事件,马三制作了UGUIEventListener.UGUIDragEventListenner和UGUIMsgHandler等这样几个UI组…
仿LOL项目开发第六天 by草帽 OK,因为更新模块已经处理好了,接着开始登陆的编写.那么我们就需要状态机的管理. 所谓状态机就是在哪个状态执行那个状态的代码逻辑: 那么我们开始编写GameStateManager来管理: 我们先在DefineCommon里面定义游戏状态类型: /// <summary> /// 游戏状态 /// </summary> public enum GameStateType { GS_Continue,//中间状态,也就是说介于两个状态转换的中间状态…
转载自 https://www.taidous.com/forum.php?mod=viewthread&fid=211&tid=55259 我想大家在用uGUI做界面时,可能经常会碰到一种需求,就是在图片上“挖洞”. 说起来我们可以有几种实现方案,比如最简单的方式,直接导入带有“洞”的图片.这种方式简单,但不适合需要动态变化的场合.考虑有这种需求:当我们上线一个新功能时,可能希望在玩家第一次打开游戏时,将界面其它地方变暗,突出新增的功能,即所谓的“新手引导”功能. 如果用黑色含透明区域图…
1 UI自适应(UGUI) UI自适应又分为锚点自适应和缩放.锚点主要控制UI控件在父控件之中的位置,同时也能影响缩放. 锚点自适应缩放: 我们使用UGUI创建一个界面,设计使用1920x1080分辨率 在我们设计好,然后改变设计大小时,会发生意想不到的情况 这个时候我们可以使用锚点的自适应,在这里选择好缩放方法和设计尺寸 然后不管我们怎么缩放,都能够很好的适配 2 视口自适应(摄像机) 首先创建一个场景 然后我们改变视口大小,发现Unity的自适应做的很好,只不过它是优先保证高度看全,自动裁剪…
这个两个东西是RectTransform里面的两个属性,也是UGUI做UI自适应的重要工具,之前做的的时候,都只是调出效果即可,并没有深究其中的原理,现在决定来补上这个漏洞. 首选我们来看看Anchors的行为是怎么来控制的. 1.在Inspector面板中,控制Anchors的位置的值有四个,如图: 而Anchor是有四瓣,根据实验结果, Xmin 控制 点1. 2的x轴的位置    Xmax控制 点3. 4的x轴的位置 Ymin控制 点1. 3的Y轴的位置     Ymax控制 点2. 4的…
Unity可复用背包工具 Demo展示 设计思路 游戏中有非常多的背包样式,比如玩家道具背包,商城,装备栏,技能栏等:每个形式的背包都单独写一份逻辑会非常繁琐,所以需要有一套好用的背包工具: 这些背包有几个共同的特点: 1.有多个排列好的方格子: 2.每个方格子中有内容时,可被拖动且拖动逻辑相同: 3.可添加使用删除格子中的物品: 因此根据这些特点,使用ScrollView等组件,提取两个类,分别负责数据管理和拖动逻辑: 前期准备 1.界面设置 制作三个界面,一个滚动背包面板,一个丢弃面板,一个…
自动化代码生成 一.前言 由于之前写过关于UI框架的文章,这篇基于之前的基础,添加了自动生成代码的功能: 如果学习过程有困惑可以跳转到之前的文章<Unity--基于UGUI的UI框架>: 二.效果展示 三.打包UIFrame 我使用的是Rider编辑器,用其他的也可以: 目的就是将之前写好的UIFrame框架的几个公共类打包成dll供调用,只有打包成dll才可以在Plugins和Scripts文件夹中都能使用: 操作步骤如下: 1.创建新的classLibrary解决方案: 2.导入写好的类,…
一.引言 Unity终于在即将到来的4.6版本内集成了所见即所得的UI解决方案(视频).事实上从近几个版本开始,Unity就在为这套系统做技术扩展,以保证最终能实现较理想的UI系统.本文试图通过初步的介绍和试用,让读者对这套系统有大体的了解,以便更进一步评估这套UI系统好不好用,适合用在什么项目.为了避免坑挖太深,更进一步的试用和评估我将在<用uGUI开发自定义Toggle Slider控件>中进行论述.为论述方便,下文将这套New UI System简称为uGUI,并且以X-UI指代现有第三…
UGUI的优点新UI系统 第1章  新UI系统概述 UGUI的优点新UI系统,新的UI系统相较于旧的UI系统而言,是一个巨大的飞跃!有过旧UI系统使用体验的开发者,大部分都对它没有任何好感,以至于在过去的很长一段时间里,大家都在使用资源商店(Asset Store)里,由第三方开发的付费插件NGUI,实现游戏中与UI有关的部分本文选自UGUI全面实践教程大学霸. UGUI的优点新UI系统,Unity官方隆重的推出了新的UI系统,大有与NGUI争锋的势头,如图1-1所示.为此很多开发者都对这个新的…