UGUI开发
UGUI开发
unity学院
基于unity和C#进行Vr虚拟现实开发,虚拟仿真软件开发,游戏开发!
展开
-
UGUI源码分析与研究3-扩展UGUI实现自定义UI组件
编写自定义UI组件的绘制代码:在脚本中,你可以重写Unity提供的OnGUI或者OnRectTransformDimensionsChange等方法,来实现自定义UI组件的绘制逻辑。创建自定义UI组件的脚本:首先,在Unity中创建一个新的C#脚本,用于定义你的自定义UI组件。在场景中使用自定义UI组件:将你的自定义UI组件脚本添加到场景中的一个UI元素上,或者通过代码动态创建并添加到场景中。实现自定义UI组件的功能:在脚本中,你可以添加需要的变量、方法和事件来实现你的自定义UI组件的功能。原创 2024-03-19 19:40:35 · 262 阅读 · 0 评论 -
UGUI源码分析与研究2-从底层实现的角度去分析和调优UI的性能问题和疑难杂症
从底层实现的角度去分析和调优UI的性能问题和疑难杂症,可以从以下几个方面入手::UI的绘制是一个重要的性能瓶颈,可以通过以下方式进行优化::UI布局也是一个影响性能的关键因素,可以通过以下方式进行优化:内存管理优化。原创 2024-03-19 19:38:49 · 377 阅读 · 0 评论 -
UGUI源码分析与研究1-UGUI底层的实现原理
RectTransform:RectTransform是UGUI中的一个重要组件,用于控制UI元素的位置、大小和旋转等属性。Graphic组件:UGUI中的UI元素都是通过Graphic组件来实现的,它是所有可见UI元素的基类。Graphic组件定义了UI元素的渲染方式、颜色、材质等属性,并提供了绘制UI元素的方法。UI元素的层级管理:UGUI中的UI元素可以通过层级关系进行管理,即父子关系。批处理将多个相邻的UI元素合并为一个批次进行渲染,减少了渲染调用的次数,提高了渲染效率。原创 2024-03-18 20:22:54 · 526 阅读 · 0 评论 -
UGUI界面性能优化3-合理规划界面层级结构
常见的Layout Group包括Horizontal Layout Group(水平布局)、Vertical Layout Group(垂直布局)和Grid Layout Group(网格布局)等。Event System(事件系统):Event System是用于处理用户输入事件的系统,负责将用户的输入(如点击、拖拽等)传递给相应的UI元素。UI元素:在Panel下可以添加各种UI元素,如Button(按钮)、Text(文本)、Image(图片)等。子面板可以嵌套在Panel中,形成层级结构。原创 2024-03-18 20:20:39 · 281 阅读 · 0 评论 -
unity的Rendertexture上面显示粒子特效最便捷的解决方案
一、为什么不显示1.为什么粒子特效也不显示?不显示是正常的,因为当前为背景的点设置为A为0时已经被剔除,当前位置粒子特效的颜色也会被剔除。因为clip发生在融合blend之前,blend发生在所有颜色输出之后的帧缓存。2.为什么NGUI的Unlit/Premultiplied Colored的shader能正常显示半透明粒子?主要是因为使用了Blend One OneMinusSrcAlpha// 源rgba*1 + 背景rgba*(1-源A值)这样就融合了源的A和背景的A,所以原创 2023-02-24 11:24:29 · 1690 阅读 · 0 评论 -
Ui Shader裁剪
1、实现如图所示2、看核心代码逻辑3、分析结果:利用shader裁剪,根据目标UI的位置,计算出中心点,画矩形或者圆形,遮挡除此UI外的其他地方。4、后记:需要原工程代码的私密我。...原创 2019-12-09 09:43:46 · 313 阅读 · 1 评论 -
UGUI的UI对齐方式
1、基于自身中心点(Pivot)对齐中心点比较好理解,就是指这个UI控件的矩形以Pivot的坐标值来确定其在父节点中的位置以下的这图能够说明中心点对于RectTransform的影响2、相对于父节点的对齐方式把锚框和一个矩形做类比,min值对应的左下角,max值对应的右上角,例如图上所示,min = (0.32,0.39),它以父节点的左下角为原点,总长度为1的百分比值,有点和纹理的u...原创 2019-11-07 14:06:18 · 1489 阅读 · 0 评论 -
UGUI的RectTransform脚本控制。
1.改变RectTransform的topGetComponent().offsetMax = new Vector2(GetComponent().offsetMax.x, top);2.改变RectTransform的bottomGetComponent().offsetMin = new Vector2(GetComponent().offsetMin.x, bottom);3.改变...原创 2019-11-04 17:37:45 · 398 阅读 · 0 评论 -
EventTrigger组件监听点击等事件
1、封装好方法:private delegate void TriggerEventMehod( BaseEventData pd );private void AddTriggersListener( GameObject obj, EventTriggerType eventTriggerType, TriggerEventMehod triggerEventMehod ){Even...原创 2019-10-30 12:17:48 · 953 阅读 · 0 评论 -
UGUI_05_补充之_VerticalLayoutGroup的使用(利用VerticalLayoutGroup制作任务滚动列表+ScrollRect+Mask组件使用)
制作一个任务滑动列表。1、新建空物体,命名为VerticalLayoutGroup2、在VerticalLayoutGroup下面新建image,Ctrl+D复制几个3、给VerticalLayoutGroup添加组件VerticalLayoutGroup,可以看到Image都按照规律排列好了。4、新建一个Image,命名为ScrollRect,将VerticalLayoutGroup拖...原创 2019-08-07 15:41:41 · 1539 阅读 · 0 评论 -
UGUI_04_补充之_Toggle的使用(利用Toggle制作背包选项卡、背包系统的简单实现GridLayoutGroup+ScrollRect+mask组件使用)
1、接着上一篇,本篇主要讲解GridLayoutGroup组件使用1.1Panel1下面新建一个空物体,命名为Grid,添加上组件GridLayoutGroup,CellSize分别调成100,1001.2Grid下面新建一个空物体,命名为GridItem1.3GridItem下面新建一个image,命名为Item1.4Item下面新建一个Image,命名为Image2、将GridIt...原创 2019-08-07 14:12:56 · 381 阅读 · 0 评论 -
UGUI_04_补充之_Toggle的使用(利用Toggle制作背包选项卡、背包系统的简单实现、toggleGroup组件使用)
1、例如这种背包选项卡2、制作过程2.1、新建image,添加toggleGroup组件。2.2新建第一个Image,起名为tab1,添加toggle组件,Image设置为未选中的UI边框,并且添加上toggle组件,将上面带有toggleGroup组件的物体拖到Group里面。2.3,在tab1下面新建一个Image,拖到tab1上Toggle里面的Graphic里面2.4同样的方法,...原创 2019-08-06 17:05:27 · 581 阅读 · 0 评论 -
UGUI按钮绑定事件
1、无参数方法:Button btn;btn=GameObject.Find(“按钮Obj”).GetComponent();btn.onClick.AddListener(OnBtnClick);public void OnBtnClick(){print(“触发按钮事件”);}2、有参数的按钮事件UIEventTrigger脚本组件导入工程 其代码如下:usin...原创 2019-05-24 12:16:09 · 221 阅读 · 0 评论 -
Unity button 按钮添加方法三种形式
1)Button.onClick.AddListener(方法);2)Button.onClick.AddListener(delegate () { 方法(); });3)Button.onClick.AddListener(() => 方法());void 方法(){}原创 2019-05-24 10:23:33 · 1909 阅读 · 0 评论 -
Unity UGUI基础之Button
UGUI Button一、Button组件:Interactable(是否可用):勾选,按钮可用,取消勾选,按钮不可用,并进入Disabled状态。Transition(过渡方式):按钮在状态改变时自身的过渡方式:Color Tint(颜色改变)Sprite Swap(图片切换)Animation(执行动画)(后面有详细介绍)Target Graphic(过渡效果作用目标):可以是...原创 2019-05-24 10:36:27 · 761 阅读 · 0 评论 -
UGUI中的Canvas以及三种画布渲染模式
一、Canvas简介Canvas画布是承载所有UI元素的区域。Canvas实际上是一个游戏对象上绑定了Canvas组件。所有的UI元素都必须是Canvas的自对象。如果场景中没有画布,那么我们创建任何一个UI元素,都会自动创建画布,并且将新元素置于其下。二、Canvas画布参数与应用1.创建画布 **当你创建任何一个UI元素的时候,都会自动创建画布。**也可以主动创建一张画布:点击Ga...原创 2019-05-29 11:18:59 · 641 阅读 · 1 评论 -
UGUI_01_创建ScrollRect下拉文本列表(上下滑动滑动条可以查看文本列表)
1、新建一个Image,将Text放到下面,制作一段长文字,如下所示:2、Image上面新加组件Scroll Rect组件,Content里面将Text拖上去,如下:3、添加遮挡组件Mask,遮挡住多余的文字,效果如下所示:4、右键新建Scrollbar,在Direction里面调节为从上到下滑动。如下所示:5、将Scrollbar添加到Scroll Rect组件里面6、最终显示效...原创 2019-08-05 14:49:52 · 826 阅读 · 0 评论 -
UGUI_02_补充之_Slider的使用_新建slider物体方式(通过滑动滑动条控制Value值)
1、主要是实现通过滑动滑动条控制物体旋转速度大小2、slider控制脚本public class Player : MonoBehaviour{public float speed ;public Slider mySlider;private void Start(){mySlider.onValueChanged.AddListener((x) =>{ChangeSp...原创 2019-08-05 19:27:54 · 1207 阅读 · 0 评论 -
UGUI_02_补充之_Slider的使用_添加slider组件方式(通过滑动滑动条控制Value值、制作血条详细过程)
1、添加slider组件方式:血条的制作;2、过程:2.1、血条制作Image层,将Slider的Fill Rect设置为Image(2),并将interactabler勾选上,咱们通过程序来控制血条血量。2.2、Image (1)层制作,放到image层下面,背景设置为黑色。镶嵌在image里面2.3、image(2)层制作image(2)层将image Type设置为Filled方式...原创 2019-08-06 13:45:07 · 731 阅读 · 0 评论 -
UGUI_03_补充之_Image的属性(image type这个属性simple、Sliced、tiled、filled样式详解)
image的属性主要是讲image type这个属性。Simple、Sliced、Tiled、Filled1、simple样式单个显示,sprite将直接显示在图片控件中,默认情况下,如果图片控件的大小与sprite不一致时候,后者将经过拉伸来符合前者的大小。2、Sliced属性。关键字:九宫切图!2.1使用背景:如图所示,比如一个按钮经过拉伸以后,它的边框跟着放大缩小,就会失真了,这种...原创 2019-08-06 14:51:23 · 6974 阅读 · 1 评论 -
UGUI_03_补充之_Image的属性_Filled样式(制作技能冷却效果)
1、制作技能冷却功能,如下所示。2、制作过程:2.1、如下所示,第一层image(1),主要是技能外边框,放上带边框的UI即可,添加上button组件。2.2第二层image,放上技能UI即可。2.3、第三层Image,也放上同一张技能UI,但是需要设置一下颜色和透明度,将颜色调整为黑色,a值设置为半透明即可,2.4编写脚本。public class SkillItem : MonoB...原创 2019-08-06 15:52:23 · 727 阅读 · 0 评论 -
C#进行UGUI Button、Slider、Toggle、Dropdown等核心方法
UGUI开发原创 2019-01-11 16:07:08 · 887 阅读 · 0 评论