Unity3D_UGUI
文章平均质量分 68
步云端
这个作者很懒,什么都没留下…
展开
-
UIGU源码分析18 :射线
源码18 :射线本来是想把UGUI的各个组件分析完 再看其射线相关的实现,但是除了之前EventSystem有RaycastAll,Graphic里也有很多射线相关的函数,感觉有必要先分析分析。RaycasterManager internal static class RaycasterManager { private static readonly List<BaseRaycaster> s_Raycasters = new List<BaseRay原创 2022-04-16 23:50:47 · 739 阅读 · 0 评论 -
UIGU源码分析17:Image
源码17:ImageImage可以说是用的最多得UI组件了,相比于RawImage来说也复杂得多public class Image : MaskableGraphic, ISerializationCallbackReceiver, ILayoutElement, ICanvasRaycastFilter{ ... [SerializeField] private Sprite m_Sprite; /// How the I原创 2022-03-30 22:51:15 · 663 阅读 · 0 评论 -
UIGU源码分析16:RawImage
源码16:RawImage /// <summary> /// Displays a Texture2D for the UI System. /// </summary> /// <remarks> /// If you don't have or don't wish to create an atlas, you can simply use this script to draw a texture. /// Keep原创 2022-03-19 21:24:01 · 506 阅读 · 0 评论 -
UIGU源码分析15:Mask
源码15:Maskpublic class Mask : UIBehaviour, ICanvasRaycastFilter, IMaterialModifier{ [NonSerialized] private RectTransform m_RectTransform; [SerializeField] private bool m_ShowMaskGraphic = true; ...}Mask 组件继承UIBehaviour 同时要实现两个接口IC原创 2022-03-19 20:30:15 · 305 阅读 · 0 评论 -
UIGU源码分析14:RectMask2D
源码14:RectMask2D前面分析MaskGraphic得时候提到了裁剪相关,这里就分析一下裁剪者组件RectMask2D public class RectMask2D : UIBehaviour, IClipper, ICanvasRaycastFilter { [NonSerialized] private readonly RectangularVertexClipper m_VertexClipper = new RectangularV原创 2022-03-19 18:28:49 · 364 阅读 · 0 评论 -
UIGU源码分析12:Graphic
源码12:GraphicGrahic是UGUI的核心组件,负责显示图像,继承了UIBehaviour,ICanvasElement。它是一个抽象类,是MaskableGraphic(可遮罩图像)的基类,而后者是RawImage,Image和Text的基类GraphicRegistryGraphicRegistry的作用主要是记录每个Canvas画布上激活的Graphic。public class GraphicRegistry{ private static GraphicRegistry原创 2022-03-13 22:41:31 · 1010 阅读 · 0 评论 -
UIGU源码分析11:Canvas和CanvasUpdateRegistry
源码11:Canvas和CanvasUpdateRegistryRuntime类图CanvasCanvas 画布 UGUI的重要组件。 UGUI源码里并没有给Canvas源码 他是在UnityEngine里,这里反射看下源码。Canvas本身提供给引擎调整的参数是上面那些。基本是调整渲染模式 层级 显示等等。源码里有几个比较重要的属性要记录下 public delegate void WillRenderCanvases(); // 公有事件,在CanvasUpdateRe原创 2022-03-12 22:48:58 · 7696 阅读 · 0 评论 -
GU源码分析10:InputField
源码10:InputFieldInputField就是输入框 提供给用户输入文字内容的 是一个重要的交互手段。比如常见的用来输入用户名 ,密码等等。 public class InputField : Selectable, IUpdateSelectedHandler, IBeginDragHandler, IDragHandler, IEndDragHandler, IPointerClick原创 2022-03-09 23:36:18 · 847 阅读 · 0 评论 -
UIGU源码分析9:DropDown
源码9:DropDownDropDwon 主要就是为了实现下拉选择的功能public class Dropdown : Selectable, IPointerClickHandler, ISubmitHandler, ICancelHandler{ ... protected internal class DropdownItem : MonoBehaviour, IPointerEnterHandler, ICancelHandler { //Item显示的文字原创 2022-03-08 00:00:57 · 289 阅读 · 0 评论 -
UIGU源码分析8:Slider
源码8:Slider public class Slider : Selectable, IDragHandler, IInitializePotentialDragHandler, ICanvasElement { ... [Serializable] /// <summary> /// Event type used by the UI.Slider. /// </summary>原创 2022-03-07 23:59:47 · 3121 阅读 · 0 评论 -
UIGU源码分析7:Scrollbar
#源码7:Scrollbar public class Scrollbar : Selectable, IBeginDragHandler, IDragHandler, IInitializePotentialDragHandler, ICanvasElement { [SerializeField] private RectTransform m_HandleRect; // Direction of movement.原创 2022-03-06 23:35:29 · 3790 阅读 · 0 评论 -
UIGU源码分析5:Button
源码5:Button前面讲了Selectable的作用 和相关的操作。在UGUI里很多UI控件都是继承Selectable的:Button DropDown Scrollbar Slider Toggle 。 这里就以Button为准分析一下public class Button : Selectable, IPointerClickHandler, ISubmitHandler{ [Serializable] /// <summary> /// Functi原创 2022-03-05 22:17:01 · 216 阅读 · 0 评论 -
UIGU源码分析6:Toggle 和 ToggleGroup
源码6:Toggle 和 ToggleGroupTogglepublic class Toggle : Selectable, IPointerClickHandler, ISubmitHandler, ICanvasElement{ /// <summary> /// Display settings for when a toggle is activated or deactivated. /// </summary> public enu原创 2022-03-05 22:15:28 · 495 阅读 · 0 评论 -
UIGU源码分析4:Selectable
源码4:Selectable前面以及讲完了UGUI的输入模块和事件系统,下面要分析一下UGUI的相关控件。对于UI画布上的可视化元素,包括Image/RawImage/Text,存在一个共同的基类Graphic。对于事件系统,每一个可执行操作的元素,例如Button/Toggle等,也存在一个基类Selectable。 本文会谈谈Selectable的实现Selectable简单看下Selectable的定义/// <summary> /// Simple selectabl原创 2022-03-05 20:45:56 · 959 阅读 · 0 评论 -
UIGU源码分析3 :ExecuteEvents
源码3:ExecuteEvents上面在分析 输入模块的时候 都提到了会有对应的事件发送。具体的实现就在ExecuteEvents 类里面下面我们来分析一下这个事件系统在最上面 有一个委托定义 public delegate void EventFunction<T1>(T1 handler, BaseEventData eventData);带有两个参数 一个是handler 是个泛型 一个是eventData通常这个会包含位置信息 偏移量 点击物体等等基于原创 2022-03-02 22:22:13 · 660 阅读 · 0 评论 -
UIGU源码分析2:StandaloneInputModule
源码2:StandaloneInputModule在上文EventSystem中,EventSystem调用了BaseInputModule的process函数,将输入的部分交给了输入模块去处理。根据处理流程的不一样,开发者可以实现不同的BaseInputModule子类,并重写process函数。Unity则是提供了默认的StandaloneInputModule类。这一篇文章先来了解BaseInputModule的继承结构,随后以process函数为入口,继续了解事件系统。BaseInputMo原创 2022-03-02 22:20:00 · 1342 阅读 · 0 评论 -
UIGU源码分析1:EventSystem
源码1:EventSystem private List<BaseInputModule> m_SystemInputModules = new List<BaseInputModule>(); private BaseInputModule m_CurrentInputModule; private static List<EventSystem> m_EventSystems = new List<EventSys原创 2022-03-02 22:18:45 · 349 阅读 · 0 评论 -
Unity UGUI中两点之间连线的通用实现
这里实现两控件之间进行连线,线段使用图片完成,主要是涉及到坐标的转换和图片的缩放同时也实现了手指和指点ui控件点之间的连线using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.UI;public class DrawLine : MonoBehav...原创 2019-12-21 16:15:07 · 10251 阅读 · 22 评论 -
UGUI快速实现摇杆功能
摇杆其实就是根据移动的距离,通过一定得比例算出对象的移动方位和距离 这里我们利用UGUI提供的Scrollrect可快速拿到移动的距离获得(-1, 1)代码如下using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.EventSys...原创 2018-05-02 23:53:25 · 647 阅读 · 0 评论 -
UGUI自适应布局
转载自:http://blog.csdn.net/gz_huangzl/article/details/52484650Auto Layout SystemAuto Layout System 是基於 Rect Transform Layout System 之上的系統,自動調整一個或多個的元素大小、位置、間格,又分為 Layout Controllers(父物件) 與 Layout Eleme转载 2018-01-03 23:09:17 · 1159 阅读 · 0 评论 -
Unity中拖动的简单实现(UGUI以及3D物体)
拖动的基本代码如下[RequireComponent(typeof( RectTransform))]using UnityEngine;using System.Collections;using UnityEngine.UI;using UnityEngine.EventSystems;public class UGUIDrag : MonoBehaviour, IBeginDragHa原创 2016-12-02 15:46:48 · 8014 阅读 · 7 评论 -
记录一下UGUI的Rectransform的一些属性
主要是Pivot和anchors的一些属性设置,方便UI布局:http://www.jianshu.com/p/dbefa746e50dhttp://blog.csdn.net/rickshaozhiheng/article/details/51569073原创 2017-02-26 14:28:28 · 1225 阅读 · 0 评论