Unity UGUI——概述、长处】的更多相关文章

Unity4.6推出的新UI系统 长处:灵活.高速.可视化.效率高效果好.易于使用和扩展…
还记得大学毕业刚工作的时候是做flash的开发,那时候看到别人写的各种各样的UI组件就非常佩服,后来自己也慢慢尝试着写,发现其实也就那么回事.UI的开发其实技术的成分相对来说不算多,但是一个好的UI是绝对少不了底层组件的支持的.我个人认为UI组件中相对比较复杂的就是List了,所以,这两天实现了一个UGUI的list,写了好几个版本,最终这个版本是相对比较好用的,在这我介绍一下大概思路,一是巩固一下知识做个记录,二是发扬一下分享精神.嘿嘿,大家多多赐教. 写List有两个重点是需要考虑的: 1.…
这里是根据图文混排源码(二)进一步修改的,其他链接也不贴了,就贴一个链接就好了,第一次看这文章的同学可以先去看看其他几篇文章 Unity UGUI图文混排源码(二):http://blog.csdn.net/qq992817263/article/details/51112311 1.首先来一个好消息,在最新版本的图文混排中,终于搞定了<quad>占位乱跳的问题,如果是从图文二过来已有工程的同学,可以将InlieText组件的Align By Geometry勾选上,对齐几何体,然而看字面意思…
Unity UGUI图文混排源码(一):http://blog.csdn.net/qq992817263/article/details/51112304 Unity UGUI图文混排源码(二):http://blog.csdn.net/qq992817263/article/details/51112311 为了方便整理,申请了一个专栏,链接:Unity UGUI图文混排专栏 图文混排解决方案二: 通过继承Text组件来获取文字的UIVertex并得到他的位置,通过Text富文本的<quad…
Unity UGUI图文混排源码(一):http://blog.csdn.net/qq992817263/article/details/51112304 Unity UGUI图文混排源码(二):http://blog.csdn.net/qq992817263/article/details/51112311 我从一开始想到的图文混排的概念都是通过文字间的空隙去粘贴一张图片,这样确定图片前面文字的最后一个位置变成了最主要的参数,接下来就给出两种解决方案 首先,先发UGUI源码的一个链接,很多东西…
目前在unity实现图文混排的好像都是通过自定义字体然后在文本获取字符的位置,用图片替换掉图片标签,这样对于支持英文来说,并没有什么影响.然后对于中文来说就是一个相当麻烦的事了,毕竟图文混排多用于游戏聊天,这样就需要将中文的所有常用汉字都添加进去,想想都不怎么科学 于是我就想在ugui自带的Text组件的基础上,实现图文混排,花了一点时间,也算有点成果了 整理一下,实现图文混排的步骤: 准备了一些图片,并制作了一个asset文件,将所有图片的信息保存进去,方便调用 写了一个SpriteGraph…
超详细的基础教程传送门:(持续更新中) Unity UGUI之Canvas&EventSystem:http://blog.csdn.net/qq992817263/article/details/51753844 Unity UGUI基础之Text:http://blog.csdn.net/qq992817263/article/details/51753864 Unity UGUI基础之Image:http://blog.csdn.net/qq992817263/article/detail…
Unity UGUI布局组件 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- 心分享.心创新!助力快速理解 Unity UGUI Layout 布局组件的使用场景为新手节省宝贵的时间,避免采坑! Chinar 教程效果: 1 Layout -- 布局组件 2 Create BG Image -- 创建背景 3 Create element -- 创建元素 4 Layout ComP…
Curved UI - VR Ready Solution To Bend Warp Your Canvas 1.7,1.8,2.2,2.3 四种版本压缩包(Unity UGUI曲面插件) 可以兼容VRTK.本人使用Unity5.4.1,SteamVR1.1.1,Curved UI - VR Ready Solution To Bend Warp Your Canvas  1.8,VRTK3.1.0可以完美的兼容使用,下载链接CSDN:https://download.csdn.net/down…
简述 最近在用UGUI的时候遇到了鼠标穿透的问题,就是说在UGUI和3D场景混合的情况下,点击UI区域同时也会 触发3D中物体的鼠标事件.比如下图中 这里给Cube加了一个鼠标点击改变颜色的代码,如下 view sourceprint? 1.void Update() 2.{ 3.if(Input.GetMouseButtonDown(0)) 4.{ 5.GetComponent<Renderer>().material.color = new Color(Random.value, Rand…
我们知道,如今的移动端设备分辨率五花八门,而开发过程中往往只取一种分辨率作为设计参考,例如采用1920*1080分辨率作为参考分辨率. 选定了一种参考分辨率后,美术设计人员就会固定以这样的分辨率来设计整个游戏的UI概念图:而这时就需要程序尽可能精准的匹配各种不同屏幕的分辨率. 好在Unity ugui中自带Canvas适配: 例如,我们要在手机上采用竖屏设计,可能就会用到如上这样的参考分辨率,这时Canvas画布会自动检测当前的屏幕分辨率并进行缩放. 为了更直观的了解ugui的缩放原则,我们可以…
在使用序列帧之前需要准备好序列帧的图集,打图集的操作参考 [Unity UGUI图集系统]浅谈UGUI图集使用 准备好序列帧图集,序列帧的播放原理就是获取到图集中的所有图片,然后按照设置的速度按个赋值给Image,其余的都可以按照自己的需求加一些循环,是否设置原图大小等等功能 using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public cla…
UGUI 系统虽然提供了很多封装好的组件,但是要实现一些特定的功能还是显得非常有限,这时候就需要使用事件接口来完成UI功能的实现.比如我们想实现鼠标移动到图片上时自动显示图片的文字介绍,一般思路会想到写个射线来检测,但其实这样的检测UGUI已经替我们完成了,我们只需要实现检测到目标对象后所要执行的代码即可! UI 组件都是基于 UGUI 封装好的类和接口以及一些 Editor 文件来进行封装制作供开发者使用的,开发者利用这些封装好的工具,只需更专注于功能开发即可.UGUI 的代码是开源的,开发者…
最近在做Unity基于UGUI的摇杆,发现了一种非常简单并且巧妙的方法,原文在这里, 不过要FQ!!http://godstamps.blogspot.tw/2015/07/unity-ugui-scrollrect.html 它的原理就是利用ScrollRect来限制摇块的摇动区域,但是ScrollRect是矩形的,我们的摇杆的摇动区域应该是个圆形的才对.所以顺着这个思路我简单的改了改. 如下图所示, ScrollCircle就是摇杆的背景, 里面的Image就是摇块. 代码 using Un…
UGUI RectTransform.Unity RectTransform详解 The first:look look API. http://docs.unity3d.com/ScriptReference/RectTransform.html 在新的UI系统中,无论Button,Text,Image,Toggle等组件,都是基于RectTransform进行布局的. 你可以不知Button为何物,不知Text为何物,不知Image为何物,但是一定要知道RectTransform. 自Uni…
ugui Input Field,获取输入的字符串. 错误方法: string content=inputField.FindChild("Text").text; 这样得到的是输入框中当前盛下的字符串,如果输入框面积小于输入内容,则此时得到的只是输入内容中的一段. 正确方法: string content=inputField.getComponent<InputField>().text 这样得到的才是完整的输入内容. 说明见unity文档: To obtains th…
在UI功能开发实践中,列表UI容器是我们经常使用一种UI容器组件.这种组件就根据输入的数据集合生成对应数据项目.从显示的方向来说,一般就分为水平排布和垂直排布的列表容器两种.列表容器为了在有限的界面空间中显示全部的数据,都会搭配使用UGUI的ScrollRect和Mask组件,我们只需要上下滑动,就可以浏览所要呈现的信息.但是,在UGUI中有几条数据就生成对应条目数的数据视图项,未免有些太过于奢侈.因为,每个数据项目不仅仅是一个UGUI的显示组件,而是多个显示组件(比如几个Text和Image)…
1.有个控件叫Selectable 这个控件在button,slider等身上有,也可以自行添加,可通过API搜索所有带这个控件的物体统一控制. 2.实现ScrollView只使用Scrollbar操作滚动,不允许鼠标滑动滚动域滚动 Image,Button组件都无法阻止ScrollRect的事件监测,但是slide,InputField可以,所以在具体的Item身上挂载这两个组件并设为Interactable即可(具体的事件监测机制未了解) 3.用Image组件,加载图片保证图片宽高比 pri…
UGUI Toggle Group用法教程 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- 心分享.心创新!助力快速理解 UGUI 中 Toggle Group 组件用法为新手节省宝贵的时间,避免采坑! Chinar 教程效果: 1 Description -- 说明 2 Create ManyToggle -- 创建多个开关 3 Add Toggle Group -- 添加开关组…
最新背包代码: Unity3D — — UGUI之简易背包 Unity版本:2017.3 功能:用UGUI实现简单的背包物品拖放/交换功能 一.简介 在UGUI下,物品的拖放脚本实现主要依赖于UnityEngine.EventSystems下的三个接口 IBeginDragHandler,  IDragHandler,  IEndDragHandler: 其次还有IPointerEnterHandler,IPointerExitHandler等接口来实现鼠标移入移出等操作的监控,同时引用这些接口…
本文仅仅记录自己在工作中踩到的ugui的坑.并讲述如何填的坑. 干货罗列在前,不愿意看的,拿东西走人,自己研究: RectTransform m_Rect m_Rect.localPosition m_Rect.rect (m_Rect.rect.width  m_Rect.rect.height) m_Rect.pivot m_Rect.sizeDelta 关于ugui的排版方面,刚上手的时候,觉得:哎哟!不错,这个刁. 但是如果你使用过qt等软件,其实ugui的对齐功能还是很落后的. 如果你…
公司要做一个这东西. A是滑动区域,ScrollRect组件. B是各种选项. C是拾取到鼠标(或触点)的选项. D是拖放区域. 大概要求是这样. 因为B的条目很多,放在A里可以滑动查看.如果要选择一个B,需要长按B,待时间足够之后生产一个新的C.拖动到D区域释放,则给D添加一个节点.其他区域则取消. 如果按住B的时间不够长,又动了鼠标(或触点),则当前滑动操作由A响应,产生A的滑动效果. 这里涉及到一个消息透传的问题. 解释一下自己在做的过程中采用的2个方案以及各自问题. 涉及的函数有以下几个…
理论上,只要一个按钮自己这一层或者子节点有一个控件勾选了RaycastTarget,并且按钮为Interactable的.并且不被其他可以点击的控件阻挡,那么这个按钮就可以被点击 在调一个界面时发现一个诡异的问题,有个按钮死活无法点击,EventSystem无法检测到.旁边的一个按钮却是ok的 对比了下,发现两者的区别是: 可点击的 x轴旋转-180 不可点击 无旋转 将不可点击的旋转-180,发现可以点击了 排查父节点,发现父节点挂了个Image为了做表现,旋转了180. 既然确定问题是旋转导…
一.概述 在Unity中需要配合使用材质和Unity Shader才能达到需要的效果.常见的流程:(1)创建一个材质:(2)创建一个Unity Shader,并把它赋给创建的材质:(3)把材质赋给要渲染的对象:(4)在材质面板中调整Unity Shader的属性,以得到满意的效果. 二.Unity中的材质 Unity中的材质需要结合一个GameObject的Mesh或者Particle Systems组件来工作.它决定了我们的游戏对象看起来是什么样子的. 三.Unity中的Shader Unit…
撰写本文时使用Unity的版本为2017.4.10f1(64bit) 1.描述问题 需求:通过UGUI制作一个界面之后,我需要在界面的后面跟前面各添加一个特效. 问题:同一层级UI是最后渲染的,所以UI永远是在最上面 解决:分别调整ui_effect1.imageWhile.ui_effect2这三个物品的渲染层级 2.层级知识补充 https://blog.csdn.net/leansmall/article/details/66478412 3.解决方案 需要设置层级的Object分为三种:…
拖动在游戏中使用频繁,例如将装备拖动到指定的快捷栏,或者大地图中拖动以查看局部信息等. Unity的EventSystems中可以直接继承几个接口来实现拖动功能,如下: namespace UnityEngine.EventSystems { public interface IBeginDragHandler : IEventSystemHandler { void OnBeginDrag(PointerEventData eventData); } } namespace UnityEngi…
**写在前面,下面是自己做Demo的时候一些记录吧,参考了很多网上分享的资源 一.打图集 1.准备好素材(建议最好是根据图集名称按文件夹分开) 2.创建一个SpriteAtlas 3.将素材添加到图集中 4.生成图集 到此,我们的图集就准备好了 二.加载图集 1.在工程里面使用(正常包内使用建议打成AB,更新比较方便,加载方式和下面一样,工程为了方便,我将上面打好的图集放在Resources下面) 2.这是最喜欢的c+v环节,加载图集 using System.Collections; usin…
本随笔参考了以下博客,在此基础上进行优化和改进: https://blog.csdn.net/qq_39640124/article/details/88284191 ugui中的Anchor预设如下: 允许我们快速对齐父物体的一部分轴向顶点或边,但有时我们并不是要对齐这些,而是需要对齐特定位置的某个点,例如: 如上图,上面的作战结束之后的等级信息B它应该是对齐父物体面板的什么位置呢? 当然了,你可以简单的将它设置为对齐屏幕右侧中点或者右上,那么此时无论屏幕分辨率如何改变,它的锚点Pivot距离…
原因:老板蛋痛,让我去抄皇室战争. 思路:我大概知道ngui(后来改成UGUI的)里面有个ScrollView.于是我就想一个横着的SV加上5个竖的SV不就好了吗. 过程: 于是 但是有个问题就是UI冲突 我的解决办法就是把5个垂直的SV分别和那个水平的SV的事件同步.代码在我的工程里(我从网上找到的代码,网址忘了,如果有人知道请联系我,我把源地址链接补充上) 另外:特别感谢@ 玄雨,和他的另一种解决方式 http://www.cnblogs.com/coldcode/p/5383412.htm…
世界空间中的点坐标转换到屏幕坐标: screenPos = RectTransformUtility.WorldToScreenPoint(cam, worldPos.transform.position); UGUI物体的坐标转换到屏幕坐标: screenPos = RectTransformUtility.WorldToScreenPoint(canvas.worldCamera, uguiObj.transform.position); 屏幕坐标转换到UGUI坐标: Vector3 wor…