随笔分类 -  Unity / Unity-UGUI

摘要:Mask使用stencil来实现裁剪 要用Stencil方式来实现裁剪,主要涉及到2个步骤: 1) 裁剪区域设置stencil buffer: Mask在自己的GetModifiedMaterial函数中设置。 2) 被裁减物体将自己的stencil id与stencil buffer比较,如果相同 阅读全文
posted @ 2023-01-22 23:02 yanghui01 阅读(337) 评论(0) 推荐(0) 编辑
摘要:特效shader添加裁剪区域 使用裁剪区域进行裁剪, 粒子的shader得支持裁剪区域,需要在vert函数中加上下面的代码: #ifdef UNITY_UI_CLIP_RECT c.a *= UnityGet2DClipping(i.worldPosition.xy, _ClipRect); //x 阅读全文
posted @ 2023-01-20 00:01 yanghui01 阅读(645) 评论(0) 推荐(0) 编辑
摘要:示意图 1) anchor区域 Vector2 anchorMin; anchor区域左下角与parent左下角的距离(用parent大小的百分比表示) Vector2 anchorMax; anchor区域的右上角与parent右上角的距离(用parent大小的百分比表示) 2) 节点坐标: 是相 阅读全文
posted @ 2022-11-26 00:36 yanghui01 阅读(811) 评论(1) 推荐(0) 编辑
摘要:1) Rect rect; a) Sprite Mode为Single时: x, y总是为0; width, height为裁掉空白像素前的大小 b) Sprite Mode为Multiple时: 则x, y为slice区域在Sprite上的位置, 大小为slice区域的大小 2) Vector2 阅读全文
posted @ 2022-11-22 00:38 yanghui01 阅读(803) 评论(0) 推荐(1) 编辑
摘要:界面需要做国际化的时候,一般不会在Text组件上使用中文,而是使用id或者key来代替,这个代码用于检测直接写了中文的Text #if UNITY_EDITOR using System.Text; using System.Text.RegularExpressions; using UnityE 阅读全文
posted @ 2022-11-08 23:07 yanghui01 阅读(65) 评论(0) 推荐(0) 编辑
摘要:# private PointerEventData _uiPointerEventData; private List<RaycastResult> _uiRaycastResultCache = new List<RaycastResult>(); public bool IsTouchAnyU 阅读全文
posted @ 2022-07-07 23:38 yanghui01 阅读(64) 评论(0) 推荐(0) 编辑
摘要:# public class MyText : Text { [SerializeField] protected bool _gray = false; [SerializeField] protected bool _gradient = false; [SerializeField] priv 阅读全文
posted @ 2022-04-04 16:35 yanghui01 阅读(67) 评论(0) 推荐(0) 编辑
摘要:# 标签类 public class MultiSelectEnumAttribute : HeaderAttribute { public MultiSelectEnumAttribute(string header) : base(header) { } } # PropertyDrawer类 阅读全文
posted @ 2022-04-02 00:12 yanghui01 阅读(80) 评论(0) 推荐(0) 编辑
摘要:【主要用途】 # 编写gui代码时,会经常用设置Text的文本,设置Image的图片,注册按钮点击,禁用按钮点击这样的操作。 把这些控件绑定到Behaviour上,便于代码访问;减少硬编码去Find控件,硬编码的方式不好的地方在于,界面结构的一旦变化就需要改对应的Find代码,外一忘记就有问题了。 阅读全文
posted @ 2022-03-09 23:33 yanghui01 阅读(151) 评论(0) 推荐(0) 编辑
摘要:原理:使用一张mask贴图,遮罩部分将alpha值设置为0就行 这边只需要修改一下ui的shader就行,在UI-Default的基础上改下: Shader "Custom/UI-Default-AvatarMask" { Properties { [PerRendererData] _MainTe 阅读全文
posted @ 2021-12-30 23:30 yanghui01 阅读(88) 评论(0) 推荐(0) 编辑
摘要:需要修改默认的shader, 像UI-Default, Sprite-Default, 他们默认都没有开启深度测试, 也就是z坐标不参与层级显示(实际调了z坐标偶尔会有效果, 但那个是随机的, 不可靠), 所以需要先修改他们 # 去unity官网下载对应unity版本的buildin_shaders 阅读全文
posted @ 2021-12-26 22:47 yanghui01 阅读(460) 评论(0) 推荐(0) 编辑
摘要:类似下面这样的层级结构,白色区域为ScrollView可见区域,RectMask2D添加在ScrollView上。 可以看到Canvas下的Image1没被裁剪掉,不在Canvas下的Image2裁剪掉了。 【原因分析】 RectMask2D内部有一个裁剪对象列表,只有在这个列表中的对象才会被裁剪, 阅读全文
posted @ 2021-12-23 01:38 yanghui01 阅读(931) 评论(0) 推荐(2) 编辑

点击右上角即可分享
微信分享提示