Unity相关_UGUI个人笔记
LetsonH
菜鸡一个,请大佬们多多指点
展开
-
UGUI_LayoutGroup布局
unity的LayoutGroup分为三种 Horizontal Layout Group(水平布局) Vertical Layout Group(垂直布局) Grid Layout Group (网格布局) Padding 就是偏移 Spacing 表示 cell之间的距离。Child Alignment 表示对齐方式。Child Force E原创 2017-08-21 22:16:40 · 3176 阅读 · 0 评论 -
UGUI实现接口事件
事件注册 •1.通过编辑器绑定方法•2.AddListener •3.实现接口•4.自定义框架 鼠标指针类 •IPointerEnterHandler •IPointerExitHandler •IPointerDownHandler •IPointerUpHandler •PointerClickHand原创 2017-09-01 19:30:51 · 686 阅读 · 0 评论 -
UGUI与NGUI的区别汇总
图集打包Atlas制作 NGUI是必须先打出图集然后才能开始做界面。因为始终都要去考虑你的UI图集。比如图集会不会超1024 ,图集该如何来规划等等。 UGUI 让开发者彻底模糊图集的概念,让开发者不要去关心自己的图集。做界面的时候只用小图,而在最终打包的时候unity才会把你的小图和并在一张大的图集里面。然而这一切都是自动完成的,开发者不需要去care它。原创 2017-08-23 22:34:57 · 3744 阅读 · 0 评论 -
优化Image设置Tiled类型产生过多的三角形顶点
将Image Type设置成Tiled来做拉伸时, unity会自动复制出很多三角形和顶点来。 我们可以用RawImage来解决这个问题。拉伸rawImage 后三角形 顶点的数量将不会在增加。 注意图片类型使用Texture.Wrap Mode 设置 Repeat。 最后把此Texture 挂在TiledImage上即可。代码中会根原创 2017-08-23 22:34:31 · 880 阅读 · 0 评论 -
图集与使用
UGUI的Atlas和NGUI的Atlas的区别 NGUI是必须先打出图集然后才能开始做界面。因为始终都要去考虑你的UI图集。比如图集会不会超1024 ,图集该如何来规划 UGUI的原理则是,让开发者彻底模糊图集的概念,让开发者不要去关心自己的图集。做界面的时候只用小图,而在最终打包的时候unity才会把你的小图和并在一张大的图集里面。然而这一切一切都是自动完成的,开发者不需要去原创 2017-08-23 22:34:00 · 654 阅读 · 0 评论 -
图集分配透明与不透明打包不到一起的错误
Sprite Packer自动打包图集还有个问题,比如我的界面全都是带透明的1024,但就有一个是不带透明的。Sprite Packer的自动打包策略会打成两个图,可以1024的图集还有一些空间并没有被利用,所以还是是希望他们能打到一个图集上。 最后我是这么解决的,强制设置图集的压缩格式。大概分为三类 1.带透明通道 2.不带透明通道 3.手动设置的格式 比原创 2017-08-23 22:33:27 · 346 阅读 · 0 评论 -
Shader相关Mask裁切UI粒子特效或者3D模型
转载自:http://www.xuanyusong.com/archives/3518 原理就是把Mask的裁切区域传给粒子特效Shader,当超出这个区域那么直接让它完全透明即可。粒子特效的源生shader大家可以去unity官网下载,我在这里把需要修改的地方标注给大家。 //add 注释中的内容就是我做修改的地方。 123456789原创 2017-08-23 22:32:18 · 1079 阅读 · 0 评论 -
UGUI_使用DoTween
因为NGUI中已经有UITween了,可是UGUI中是没有这样的Tween的。因为在做游戏暂停的时候通常会使用Time.Scale =0 , 可是暂停的时候UI如果需要继续有动画怎么办呢? 在DoTween中只需要设置 tweener.SetUpdate(true); 即可。 意思就是这个Tween是忽略TimeScale,如果不写的话 tweene原创 2017-08-21 22:23:15 · 3436 阅读 · 0 评论 -
UGUI_判断鼠标或者手指是否点击在UI上
战斗场景,UI和3D场景同时都需要响应触摸事件, 如果同时响应可能就会出现触摸UI的时候影响到了3D部分。 为了解决这个问题在判断3D响应之前要先判断手指是否点击在UI上。 以前NGUI的时候都是自己来发送射线判断,现在UGUI好了系统提供了更为简便的方法。 using UnityEngine; using UnityEngine.UI原创 2017-08-21 22:22:03 · 778 阅读 · 0 评论 -
UGUI_忽略UI被拦截事件
如果一个按钮有一半的区域被Image挡住,那么被挡住的按钮区域的点击事件就会被拦截掉。解决这个问题有两个方法。 修改Hierarchy视图中的树状结构。如下图所示,把Image2放到Image1的下面,这样渲染上Image2在Image1前面,这样点击被挡住区域就会被响应了, Text的原理一样。 2.通过重写Image类,让Image不参与射线检测。 继承I原创 2017-08-21 22:21:27 · 1095 阅读 · 0 评论 -
UGUI_不添加摄像机解决UI与UI特效叠层
找到一个不用添加多个Camera在两个UI中叠加UI特效的方法。 代码: C#123456789101112131415161718192021222324252627using UnityEngine;using System.Collections;usin原创 2017-08-21 22:20:55 · 871 阅读 · 0 评论 -
UGUI_不规则按钮的响应区域
1.用Polygon Collider2D组件圈出精灵响应事件的区域。 注意 IsRaycastLocationValid 的判断区域是RectTransform的区域。 如果 polygon Collider编辑出来的区域大于RectTransform , 必须调节RectTransform的区域。 例子:比如想把按钮的点击区域改成不规则的。 1.把原创 2017-08-21 22:20:11 · 1510 阅读 · 0 评论 -
UGUI_UGUI事件系统简述及使用方法总结
Unity3D的uGUI系统的将UI可能触发的事件分为12个类型,即EventTriggerType枚举的12个值。如下图所示: 先以PointerClick为例。这个是用于某点点击事件。其他事件都可以根据相同的办法调用。 之所以使用PointerClick为例。是因为在最后笔者会提到一个特殊的实现方式。而相比于其他事件类型,有且仅有Click事件存在特殊实原创 2017-08-21 22:19:35 · 591 阅读 · 0 评论 -
UGUI_UI子节点在Canvas的2D坐标
首先我们要搞清楚 transform.postion 和 rectTransform.anchoredPosition 这两个坐标是完全不一样的。前面的是3D坐标,后面的是2D在Rect里的坐标,并且还是相对坐标,那么节点深了坐标就更不好换算了。 C#123456789 public Canvas canvas; void St原创 2017-08-21 22:18:42 · 555 阅读 · 0 评论 -
UGUI_UI的深度学习
UI的深度 优先看父节点在Hierarchys视图中的排序,决定父节点的渲染先后。然后在依次看子节点中的Hierarchy视图的排序,排在后边的在最前方显示。 两个图之间插一个图 布界面的时候我们可以按照这个排序来让我们的drawCall 最小化。可是如果我想运行的时候在两个图之间插一个图该怎么办?脚本如下所示。 123456原创 2017-08-21 22:18:14 · 340 阅读 · 0 评论 -
UGUI_UGUI组件属性
Canvas Canvas,Render Mode一共有三种模式。 Screen Space – overlay 此模式不需要UI摄像机,UI将永远出现在所有摄像机的最前面。并不常用,如果我想在UI前面放个东西就不行了,因为可能在UI前面放一个特效或者UI物体啥的。 Screen Space- Camera 此模式需要提供一个UICamer原创 2017-08-21 22:17:38 · 514 阅读 · 0 评论 -
Unity自定义事件相应区域
public class MyImage : Image{ //判断点击的坐标是否可以引发事件 //public override bool IsRaycastLocationValid(Vector2 screenPoint,Camera eventCamera) //{ // return GetComponent().OverlapPoint(scr原创 2017-09-01 20:29:26 · 1609 阅读 · 0 评论