自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

qq826364410的专栏

比你优秀的人,往往比你更努力!

  • 博客(397)
  • 资源 (5)
  • 问答 (1)
  • 收藏
  • 关注

原创 UGUI源码解析(二十四)LayoutGroup

LayoutGroup类LayoutGroup是一个抽象类,继承了UIBehaviour, ILayoutElement, ILayoutGroup。HorizontalOrVerticalLayoutGroup和GridLayoutGroup继承自它。继承自ILayoutController的方法,LayoutGroup的SetLayoutHorizontal和SetLayoutVert...

2019-03-06 10:49:42 894

原创 UGUI源码解析(二十三)AspectRatioFitter

AspectRatioFitter类调整RectTransform大小,以适应指定的宽高比。继承了UIBehaviour, ILayoutSelfController。属性:aspectMode 执行宽高比的模式aspectRatio 应用的宽高比,宽度除以高度OnEnable方法调用SetDirty(true),启动协程延时更新,延时后调用UpdateRectOnDi...

2019-03-06 10:49:36 421

原创 UGUI源码解析(二十二)ContentSizeFitter

ContentSizeFitter类继承了UIBehaviour, ILayoutSelfController,继承ILayoutSelfController,需要重写SetLayoutHorizontal和SetLayoutVertical方法。SetLayoutHorizontal方法清空DrivenRectTransformTracker,调用HandleSelfFittingA...

2019-03-06 10:49:29 1083

原创 UGUI源码解析(二十一)LayoutRebuilder

LayoutRebuilderGraphic是通过MarkLayoutForRebuild这个静态方法标记自己需要重建的。MarkLayoutForRebuild方法找到父对象中最近的ILayoutGroup类型的组件layoutRoot,并为其创建LayoutRebuilder。 从s_Rebuilders栈中Pop出一个LayoutRebuilder,s_Rebuilders是一...

2019-03-06 10:48:57 2748 1

原创 UGUI源码解析(二十)Text

TextText继承了MaskableGraphic, ILayoutElement。OnPopulateMesh方法重写Graphic的OnPopulateMesh方法,会在Graphic的Rebuild方法被调用,为CanvasRenderer的Mesh提供了顶点位置、顶点颜色、UV和三角形信息。 根据用户设置生成了一个TextGenerationSettings文本生成设置,...

2019-03-05 10:33:25 2169

原创 UGUI源码解析(十九)Image

ImageImage继承了MaskableGraphic, ISerializationCallbackReceiver, ILayoutElement, ICanvasRaycastFilter,提供了四种ImageType:Simple(普通)、Sliced(切割)、Tiled(平铺)、Filled(填充)。继承了ILayoutElement是一个布局元素,可以被各种布局组(ILayout...

2019-03-05 10:33:18 869

原创 UGUI源码解析(十八)RawImage

RawImageRawImage继承了MaskableGraphic,顾名思义,就是未经处理的图片,每个RawImage都会创建一个DrawCall,所以最好用在背景图片或是临时图形。RawImage只继承了MaskableGraphic抽象类。重写了Graphic的SetNativeSize方法,具体实现设置RectTransform的sizeDelta跟纹理Texture的大小尺寸一致...

2019-03-05 10:33:12 552

原创 UGUI源码解析(十七)Mask

MaskMask继承了UIBehaviour, ICanvasRaycastFilter,IMaterialModifier。OnEnable方法如果含有Graphic组件,设置graphic.canvasRenderer.hasPopInstruction为true,调用graphic.SetMaterialDirty()方法。然后调用MaskUtilities.NotifySten...

2019-03-05 10:33:05 713

原创 UGUI源码解析(十六)RectMask2D

RectMask2DRectMask2D继承了UIBehaviour, IClipper, ICanvasRaycastFilter维护了一个IClippable类型的列表:private HashSet<IClippable> m_ClipTargets = new HashSet<IClippable>();AddClippable方法设置m_Sho...

2019-03-05 10:32:58 1490

原创 UGUI源码解析(十五)MaskableGraphic

MaskableGraphicMaskableGraphic是一个抽象类,继承了Graphic, IClippable, IMaskable, IMaterialModifier接口,派生了RawImage,Image和Text。OnEnable方法设置重新计算模板m_ShouldRecalculateStencil为true,更新裁剪的父对象UpdateClipParent,设置Ma...

2019-03-05 10:32:51 2071

原创 UGUI源码解析(十四)Grahic

GrahicGrahic是UGUI的核心组件,负责显示图像,继承了UIBehaviour,ICanvasElement。它是一个抽象类,是MaskableGraphic(可遮罩图像)的基类,而后者是RawImage,Image和Text的基类。继承自UIBehaviour的方法:OnEnable方法调用了CacheCanvas方法,从父节点中获取Canvas列表,取得第一个激...

2019-03-05 10:32:42 1760

原创 UGUI源码解析(十三)InputField

InputFieldInputField可以提供文本输入功能,是与用户交互的一个重要手段。我们可以在编辑器里,为OnValueChanged和OnEndEdit两个事件添加监听,这样就可以获得用户输入的文本。public class InputField : Selectable,IUpdateSelectedHandler,IBeginDragHandler,IDragHandler...

2019-03-05 10:32:36 2327

原创 UGUI源码解析(十二)Dropdown

Dropdown内部类DropdownItem,继承自MonoBehaviour和IPointerEnterHandler, ICancelHandler两个接口。OnPointerEnter(当鼠标进入)方法继承自IPointerEnterHandler,调用EventSystem的SetSelectedGameObject将本对象设置为选中的对象,表现就是Item对象的背景颜色变了。...

2019-03-05 10:32:27 966

原创 UGUI源码解析(七)Selectable与Button

1、SelectableSelectable是UGUI的核心组件,除了最常用的Button,它还是Scrollbar、Dropdown、Slider、Toggle、InputField这些组件的基类。在Selectable之前,我们看到,它被添加了四个属性:[AddComponentMenu("UI/Selectable", 70)][ExecuteInEditMode] 运行在编...

2019-03-05 10:32:03 834

原创 UGUI源码解析(十一)Slider

SliderSlider继承了Selectable, IDragHandler, IInitializePotentialDragHandler, ICanvasElement。Set方法ClampValue把value限制在minValue和maxValue之间,如果value改变,且sendCallback为true,便会发送m_OnValueChanged事件。同时会调用Upda...

2019-03-04 21:13:20 854

原创 UGUI源码解析(十)ScrollRect

ScrollRectScrollRect继承自UIBehaviour,另外还继承了IInitializePotentialDragHandler, IBeginDragHandler, IEndDragHandler, IDragHandler, IScrollHandler, ICanvasElement, ILayoutElement, ILayoutGroup这些接口。OnEnabl...

2019-03-04 21:11:30 2927

原创 UGUI源码解析(九)Scrollbar

ScrollbarScrollbar,它继承自Selectable,还继承了 IBeginDragHandler, IDragHandler, IInitializePotentialDragHandler, ICanvasElementt四个接口。Scrollbar有一个float变量m_Value表示当前Scrollbar的值,变化范围在[0, 1]之间,还添加了一个UnityEven...

2019-03-04 21:06:28 1040

原创 UGUI源码解析(八)Toggle和ToggleGroup

ToggleToggle继承了Selectable, IPointerClickHandler, ISubmitHandler, ICanvasElement,(ICanvasElement,是Canvas渲染的时候调用的接口),Toggle有个重要的bool变量m_IsOn(对应成员属性IsOn),表示是否被勾选。还添加了一个UnityEvent<bool>类型的事件onValu...

2019-03-04 21:04:57 1533

原创 UGUI源码解析(六)Raycast

6、Raycast编程小技巧:Mathf.Approximately(0.0f, projectionDirection); 比较两个float值,如果他们在很小的相差(Epsilon)内,返回true。浮点不精确使得使用等号运算符比较浮点数不准确。例如,(1.0 == 10.0 / 10.0)每次都可能不会返回true。BaseRaycaster是其他Raycaster的抽...

2019-03-04 20:59:20 1034

原创 UGUI源码解析(五)CanvasUpdateRegistry

5、CanvasUpdateRegistryCanvasUpdateRegistry(画布更新注册处)是一个单例,它是UGUI与Canvas之间的中介,继承了ICanvasElement接口的组件都可以注册到它,它监听了Canvas即将渲染的事件,并调用已注册组件的Rebuild等方法。CanvasUpdateRegistry维护了两个索引集(不会存放相同的元素)://布局重建序列索引...

2019-03-04 20:58:38 978

原创 UGUI源码解析(四)输入模块

输入模块在第一部分EventSystem我们探究了事件系统,在第二部分执行事件中我们介绍了事件是如何执行的。那么事件是如何产生的呢?这就涉及到BaseInputModule、PointerInputModule、StandaloneInputModule、TouchInputModule这些类。我们就探究一下输入模块的原理。比如处理触摸事件时,EventSystem在OnUpdate()方...

2019-03-04 20:56:50 774

原创 UGUI源码解析(三)截取事件

截取事件有两种截取事件的方法:第一种,你可以扩展EventTrigger,并覆盖你感兴趣截取的事件的函数(简单常用);第二种,指定单个的委托事件。第一种方式:public class EventTriggerExample : EventTrigger{ public override void OnBeginDrag(PointerEventData data)...

2019-03-04 20:55:43 857

原创 UGUI源码解析(二)执行事件

执行事件在上面的事件系统,其中我们讲到EventSystem可以通过ExecuteEvents这个类来执行事件,那么事件是如何执行的呢?这里涉及到了两个文件EventInterface和ExecuteEvents。EventInterface类EventInterface定义了一系列的跟输入有关的接口。例如IPointerEnterHandler(指针进入事件接口)。一个组件添加...

2019-03-04 20:55:26 981

原创 UGUI源码解析(一)EventSystem系统

EventSystem系统看似名字很大,其实EventSystem处理和管理的是点击、触摸、键盘输入等事件,叫做InputEventSystem更为合适。//系统输入模块private List<BaseInputModule> m_SystemInputModules = new List<BaseInputModule>();//当前输入模块pri...

2019-03-04 20:46:47 2431

原创 Unity--计算FPS

FPS:每秒运行的帧数。using UnityEngine;public class Fps : MonoBehaviour{ private float m_LastTime; private float m_UpdateInterval = 0.5f; private float m_Frames; void Start() { ...

2019-03-03 21:08:12 578

原创 NavMesh.Raycast和NavMesh.CalculatePath的使用

一般情况下,只有主角是需要自动寻路的,其他玩家和怪物位置都是服务器转发过来的。除了主角身上有 NavMeshAgent,其他玩家和怪物对象可以不依赖 NavMeshAgent了,不用自主寻路,服务器直接下发目标点 (走线段),减少性能消耗。判断是否其他玩家或怪物对象可以直接到达目标点,使用NavMesh.Raycast判断,其他玩家或怪物对象与目标点之间存在障碍物,如果存在,使用NavMesh...

2019-03-02 23:18:01 6393

原创 C#--二叉树的遍历(递归和非递归)

二叉树的遍历包含四种遍历方式:前序遍历中序遍历后序遍历层次遍历一.前序遍历 前序遍历按照“根结点-左孩子-右孩子”的顺序进行访问。 1.递归实现// 前序遍历:首先访问根结点,然后遍历其左子树,最后遍历其右子树。 private void PreOrder(TreeNode<T> node) { if (nod...

2019-03-01 21:27:19 2211

原创 C#--事件的一个面试题

话不多说,先看代码:using System;namespace ConsoleApp2{ class Class21 { public delegate void MethodCall(); public static event MethodCall MethodHandle; static void Main(str...

2019-03-01 13:56:14 367

原创 C#--委托(Delegate)和事件(Event)

委托在本质上仍然是一个类,我们用delegate关键字声明的所有委托都继承自System.MulticastDelegate。后者又是继承自System.Delegate类,System.Delegate类则继承自System.Object。委托是一种类型安全的函数回调机制, 它不仅能够调用实例方法,也能调用静态方法,并且具备按顺序执行多个方法的能力。1. 委托也好,事件也好最初的起源是C/C...

2019-03-01 12:31:29 658

原创 C#--静态构造函数

静态构造函数是在构造函数方法前面添加了static关键字之后形成的,并且没有修饰符(public,private),没有参数。静态构造函数的特点:静态构造函数没有修饰符修饰(public,private),因为静态构造函数不是我们程序员调用的,是由.net 框架在合适的时机调用的。 静态构造函数没有参数,因为框架不可能知道我们需要在函数中添加什么参数,所以规定不能使用参数。 静态构造函...

2019-02-28 22:22:27 1665

原创 C#--字符串常量池

在介绍字符串常量池之前,先看一段简单的代码:using System;namespace ConsoleApplication1{ class Program { static void Main(string[] args) { string a = "123"; string b = "...

2019-02-27 22:42:13 3222 3

原创 C#--反汇编工具ildasm.exe

通用中间语言(Common Intermediate Language,简称IL)是一种属于通用语言架构和 .NET 框架的的人类可读的编程语言。目标为 .NET 框架的语言被编译成CIL(基于.NET框架下的伪汇编语言),这是一组可以有效地转换为本机代码且独立于 CPU 的指令。CIL类似一个面向对象的汇编语言,并且它是完全基于堆栈的,它运行在CLR上。ildasm.exeildasm...

2019-02-27 22:30:30 2612

原创 Unity用户手册-UGUI合批

UGUI合批合批过程是指Canvas合并UI元素的网格,并且生成发送给Unity渲染管线的命令。Canvas使用的网格都是从绑定在Canvas上的CanvasRenderer获得,但是不包含子Canvas的网格。UGUI的层叠顺序是按照Hierarchy中的顺序从上往下进行的,也就是越靠上的组件,就会被绘制在越底部。所有相邻层的可合批的UI元素(具有相同材质和纹理),就会在一个DrawCall...

2019-02-26 10:36:16 1723

原创 Unity用户手册-正向渲染和延迟渲染

Forward Rendering(正向渲染)发生在渲染管线的顶点处理阶段,会计算所有的顶点的光照。全平台支持。规则一:最亮的几个光源会被实现为像素光照 规则二:然后最多4个光源会被实现为顶点光照 规则三:剩下的光源会被实现为效率较高的球面调谐光照(Spherical Hamanic),这是一种模拟光照规则一补充说明:最亮的那盏光一定是像素光照 Light的Rend...

2019-02-25 13:47:57 987

原创 Unity用户手册-Texture

TexturePower of 2 (贴图宽高要是2的幂的长度):根据不同平台,选择合理的纹理压缩格式,iOS选择RGBA ASTC 4* 4 block(从iOS9开始支持,显示效果更好,不需要把图片设置成方形),Android选择RGBA ETC 2 8bitsAndroid平台:如果有一个贴图大小为200 * 512,会被变成256 * 512。如果贴图大小为257 *...

2019-02-25 12:42:21 628

原创 Unity用户手册-Shader

ShaderGPU上的渲染程序。渲染管线的流程:几何阶段:顶点着色器(Vertex Shader):主要工作是坐标变换,逐顶点光照和输出后续阶段所需的数据。所有的几何体,以顶点的形式,先经过顶点着色器,进行顶点的坐标转换,把顶点坐标从模型空间转换到齐次裁剪空间,正向渲染(Forward Render)会对顶点进行光照计算,得到顶点的光照。VBO(Vertex Buf...

2019-02-25 12:41:23 563

原创 Unity用户手册-NavMesh导航系统

NavMeshNavMesh基于A*算法的扩展,基于场景的可行走和不可行走区域,把场景分成众多不规则的三角形,计算某两个点所在的三角形Mesh的距离,根据区域不同的Cost,采用广度优先的遍历,找到一条最短路径。广度优先搜索(Breadth First Search,简称BFS)从某个节点出发,首先访问这个节点,然后找出这个节点的所有未被访问的邻接点(或是孩子节点),访问完这些邻接...

2019-02-25 12:33:29 905

原创 Unity用户手册-Camera

Camera属性:Clear Flag:确定屏幕的哪些部分将被清除。Skybox:天空盒,擦除上一帧的颜色和深度并先用Skybox渲染在最底层,Depth大的Camera,将会清除Depth小的Camera绘制的内容。Solid Color:固定颜色,擦除上一帧的颜色和深度并先用固定颜色渲染在最底层,Depth大的Camera,将会清除Depth小的Camera绘制的内容。De...

2019-02-25 12:31:03 321

原创 Unity用户手册-动画系统Animator

动画系统Animator动画类型Legacy 基础的动画Generic 动画,包含动画状态机Humanoid 人形动画,包含动画状态机Update ModeNormal 动画播放将与Update同步更新,动画播放的速度与当前的TimeScale相匹配,如果TimeScale变慢,动画播放速度也会变慢Animate Physics 动画播放将与FixedUpdate...

2019-02-25 12:30:11 649

原创 Unity用户手册-Physics物理系统

Physics物理系统碰撞的基本原理场景管理器会把场景划分成很多区域,通常用二叉树,四叉树或八叉树来划分,先划分几个大的区域,然后大的区域内,又分成几个小的区域,小的区域又分成更小的区域。场景中的GameObject会处在特定的区域内,而每个区域存在树的节点中。当需要做碰撞检测时,只需要检测GameObject所在的区域内的碰撞关系。 判断两个GameObject是否碰撞,实质上就是检测...

2019-02-25 12:28:46 1182

Lua静态库,可以让Lua与C++进行互相调用

Lua静态库,引用Lua静态库,可以让Lua与C++进行交互,这个游戏开发中是必要的基础。

2019-03-17

Unity——VideoPlayer完整运行实例

Unity——VideoPlayer完整运行实例,包括Url播放和本地视频播放,及大部分VideoPlayer的API接口实现。

2018-05-30

cudnn-8.0-windows10-x64-v5.1.zip

最低分只能设置1分,记得之前不是有免费下载的设置吗,好像改掉了。。。如果大家也是来玩玩TensorFlow或Keras的,可以一起交流探讨。我专门把之前搭建环境时,踏的各种坑,写了些,希望可以给大家一些帮助。可以百度搜Win10下 Anaconda + CUDA + CuDNN + Tensorflow-gpu + Keras 应该就可以搜到了。

2017-09-16

Android ListView从网络获取图片及文字显示

Android ListView从网络获取图片及文字显示

2013-08-02

超炫的3d照片效果

超炫的3d图片切换效果 一定让你满意

2013-04-27

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除