简述 最近在用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…
解决方案 : http://www.cnblogs.com/fly-100/p/4570366.html 这里我们直接在使用Input.GetMouseButtonDown(0)的地方加了一个检测函数,CheckGuiRaycastObjects,如下 bool CheckGuiRaycastObjects() { PointerEventData eventData = new PointerEventData(Main.Instance.eventSystem); eventData.pre…
不过在使用时需要先获取两个红色显示的变量,graphicRaycaster和eventSystem. 这两个变量分别对应的是Canvas中的GraphicRaycaster组件和创建UI时自动生成的“EventSystem”中的EventSystem组件. 引用 using UnityEngine;using System.Collections.Generic;using UnityEngine.EventSystems;using UnityEngine.UI; private Graphi…
此博客跟随siki老师的课程笔记生成,感谢siki老师的辛勤付出! 此框架功能较简单,适用于学习,可以很好的锻炼我们的设计思想 框架源码地址: UIFramework litjson.dll下载地址: litjson 不使用UI框架存在的一些问题 1.随着游戏系统的复杂,UI控件越来越多,各个UI直接的通讯,以及UI与GameObject之间的通讯形成一张复杂的蜘蛛网, 拖着拖着,有时候我都忘了哪个对象跟哪个对象关联了.如果是别人要看我的程序,我估计他找半天都找不到UI逻辑的入口. 2.耦合性非…
monoDevelop ide 代码提示不起作用,可能是因为ide里索引了一些不存在的文件,检查一下solution窗口里是否有文件变红,如下图中springControlEx.cs.将变红的文件remove掉,然后去unity菜单中点File->Save Project.…
遇到了同步Ajax引起的UI线程阻塞问题,在此记录一下. 事情起因是这样的,因为页面上有多个相似的异步请求动作,本着提高代码可重用性的原则,我封装了一个名为getData的函数,它接收不同参数,只负责获取数据,然后把数据return.基本的逻辑剥离出来是这样的: function getData1() {    var result;    $.ajax({        url: "p.php",        async: false,        success: functi…
用了快一年的MacBook Pro最近出现了奇怪的问题.出问题时,鼠标不受控制,屏幕上鼠标指针乱窜,还时不时自动点击,犹如电脑被人远程控制一般.不管是用trackpad还是用外接鼠标,都是同样问题.电脑根本无法使用,让人郁闷至极. 前几次出现问题时,关机一段时间后再开机就好了.可是今天出现问题后,无论怎么整,即使关机几小时,问题也依旧. 后来冷静下来仔细分析了一下,怀疑是trackpad的问题引起.于是搜索禁用trackpad的方法,找到一篇文章Disable your built-in tra…
1-双击“我的电脑”. 进到这里 2-路径框修改为“shell:Sendto”,回车. 3-把“桌面快捷方式”黏贴到Sendto文件夹下…
今天运行在windows平板上的程序,有个功能是弹出子窗体,点弹出窗体的关闭按钮,要点好几次才能触发.网上找了找,也有人与我类似的情形. 解决方法如下: public static void DisableWPFTabletSupport() { // Get a collection of the tablet devices for this window. TabletDeviceCollection devices = System.Windows.Input.Tablet.Tablet…
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…
最新背包代码: Unity3D — — UGUI之简易背包 Unity版本:2017.3 功能:用UGUI实现简单的背包物品拖放/交换功能 一.简介 在UGUI下,物品的拖放脚本实现主要依赖于UnityEngine.EventSystems下的三个接口 IBeginDragHandler,  IDragHandler,  IEndDragHandler: 其次还有IPointerEnterHandler,IPointerExitHandler等接口来实现鼠标移入移出等操作的监控,同时引用这些接口…
超详细的基础教程传送门:(持续更新中) 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…
本文仅仅记录自己在工作中踩到的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的对齐功能还是很落后的. 如果你…
UI Kit 快速入门 首先我们来进行 UI Kit 的快速入门 制作一个界面的,步骤如下: 准备 生成代码 逻辑编写 运行 1. 准备 先创建一个场景 TestUIHomePanel. 删除 Hierarchy 其他的 GameObject. 搜索 UIRoot.prefab,拖入 Hierarchy. 在 UIRoot / Design GameObject 下创建 Panel ( 右击 Design -> UI -> Panel ). 将该 Panel 改名为 UIHomePanel.…
遮罩,顾名思义是一种可以掩盖其它元素的控件.常用于修改其它元素的外观,或限制元素的形状.比如ScrollView或者圆头像效果都有用到遮罩功能.本系列文章希望通过阅读UGUI源码的方式,来探究遮罩的实现原理,以及通过Unity不同遮罩之间实现方式的对比,找到每一种遮罩的最佳使用场合. Unity UGUI主要提供两种遮罩,分别是Mask和Rect Mask 2D.在2D游戏开发中,可能还会用到Sprite Mask,虽然不是本文的重点,但后面也会提到.原本是希望将对各个遮罩的分析与对比整合在一篇…
还记得大学毕业刚工作的时候是做flash的开发,那时候看到别人写的各种各样的UI组件就非常佩服,后来自己也慢慢尝试着写,发现其实也就那么回事.UI的开发其实技术的成分相对来说不算多,但是一个好的UI是绝对少不了底层组件的支持的.我个人认为UI组件中相对比较复杂的就是List了,所以,这两天实现了一个UGUI的list,写了好几个版本,最终这个版本是相对比较好用的,在这我介绍一下大概思路,一是巩固一下知识做个记录,二是发扬一下分享精神.嘿嘿,大家多多赐教. 写List有两个重点是需要考虑的: 1.…
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布局组件 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- 心分享.心创新!助力快速理解 Unity UGUI Layout 布局组件的使用场景为新手节省宝贵的时间,避免采坑! Chinar 教程效果: 1 Layout -- 布局组件 2 Create BG Image -- 创建背景 3 Create element -- 创建元素 4 Layout ComP…
我们知道,如今的移动端设备分辨率五花八门,而开发过程中往往只取一种分辨率作为设计参考,例如采用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…
**写在前面,下面是自己做Demo的时候一些记录吧,参考了很多网上分享的资源 一.打图集 1.准备好素材(建议最好是根据图集名称按文件夹分开) 2.创建一个SpriteAtlas 3.将素材添加到图集中 4.生成图集 到此,我们的图集就准备好了 二.加载图集 1.在工程里面使用(正常包内使用建议打成AB,更新比较方便,加载方式和下面一样,工程为了方便,我将上面打好的图集放在Resources下面) 2.这是最喜欢的c+v环节,加载图集 using System.Collections; usin…
遮罩,顾名思义是一种可以掩盖其它元素的控件.常用于修改其它元素的外观,或限制元素的形状.比如ScrollView或者圆头像效果都有用到遮罩功能.本系列文章希望通过阅读UGUI源码的方式,来探究遮罩的实现原理,以及通过Unity不同遮罩之间实现方式的对比,找到每一种遮罩的最佳使用场合. 本文是UGUI遮罩系列的第二篇,专门解读RectMask2D遮罩.第一篇是[UGUI源码分析]Unity遮罩之Mask详细解读,对Mask感兴趣的同学可以跳转过去看一下.后续还会有Rect Mask 2D和Mask…
这里是根据图文混排源码(二)进一步修改的,其他链接也不贴了,就贴一个链接就好了,第一次看这文章的同学可以先去看看其他几篇文章 Unity UGUI图文混排源码(二):http://blog.csdn.net/qq992817263/article/details/51112311 1.首先来一个好消息,在最新版本的图文混排中,终于搞定了<quad>占位乱跳的问题,如果是从图文二过来已有工程的同学,可以将InlieText组件的Align By Geometry勾选上,对齐几何体,然而看字面意思…
目前在unity实现图文混排的好像都是通过自定义字体然后在文本获取字符的位置,用图片替换掉图片标签,这样对于支持英文来说,并没有什么影响.然后对于中文来说就是一个相当麻烦的事了,毕竟图文混排多用于游戏聊天,这样就需要将中文的所有常用汉字都添加进去,想想都不怎么科学 于是我就想在ugui自带的Text组件的基础上,实现图文混排,花了一点时间,也算有点成果了 整理一下,实现图文混排的步骤: 准备了一些图片,并制作了一个asset文件,将所有图片的信息保存进去,方便调用 写了一个SpriteGraph…
1.第一个直接改变鼠标样式 public var cursorTexture:Texture2D; private var changeFlag = false; function Update(){ if(changeFlag){ Cursor.SetCursor(cursorTexture,Vector2.zero,CursorMode.Auto); }else{ Cursor.SetCursor(null,Vector2.zero,CursorMode.Auto); } } functio…
用UGUI做的UI,比如按钮,点击一下,后面的3D物体也会接收到点击事件! 1.UGUI自带的防穿透代码: if (EventSystem.current.IsPointerOverGameObject()) { return;//为真,则点击在UI上 } 在3D物体的点击事件里加上上述代码 测试有效! 如果你要穿透效果,比如一张图片在按钮前面勾掉Raycast Target即可 如果要改变透明度,点Color,它的RGBA,把A调小…
Unity编辑器 - 鼠标悬停在控件上时改变鼠标样式 摘自Unity文档 EditorGUIUtility.AddCursorRect public static void AddCursorRect(Rect position, MouseCursor mouse); public static void AddCursorRect(Rect ### position, MouseCursor mouse, int controlID); Parameters position The rec…
制作类似 RPG 游戏时,可能会须要显示小地图. 小地图的制作一种方式是用还有一个摄像机来渲染到一张纹理上.实时显示到UI界面. 以Unity 5.0 的 UI 系统为例: 在地图正上方放置一个摄像机,设置其 Culling Mask,比方:Ground(地面).MinimapSign(玩家怪物标识),创建一张 Render Texture,将 Target Texture 属性指向这张纹理图片.例如以下图所看到的: 创建 UI 面板.由于这里小地图打算制作成圆形,使用 Mask 组件和一张掩码…
代码: using UnityEngine.EventSystems; using System.Collections; /// <summary> /// 脚本位置:UGUI按钮组件身上 /// 脚本功能:实现按钮长按状态的判断 /// </summary> // 继承:按下,抬起和离开的三个接口 public class OnButtonPressed :MonoBehaviour,IPointerDownHandler,IPointerUpHandler,IPointerE…