自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Leeyoung(●'◡'●)

一步一步一步一步

  • 博客(51)
  • 资源 (4)
  • 问答 (1)
  • 收藏
  • 关注

原创 UGUI的认识与优化

此文章仅收集整理个人学习之用, 部分内容来源见文尾相比于NGUI, UGUI的优点:层级管理UGUI采用的排序比较简单, 在C++层处理,效率更高在Canvas内部元素采用Hierarchy方式排序,在Canvas同级之间通过Sort Order或者是Hierarchy来进行排序NGUI的排序是通过Depth、Z值、RenderQueue共同影响的,整体规则过于复杂3D...

2018-10-14 23:45:19 935

原创 [Unity小项目]3D像素跑酷游戏

FFFFFlipping1. 游戏截图[待补充]>>>emm录制gif的时候出错了…2. APK下载FFFFFlipping-V1.1.apk3. 怎么玩?点键help按钮, 会显示操作提示你可以向左跳, 向右跳, 每次只能跳一步你可以向后跳一步来调整战略, 防止陷入僵局, 或者踩爆更多的敌人!你可以收集金币, 然后打破纪录! (但是现在还没有商店)踩爆敌人...

2018-10-14 17:01:20 1809 1

原创 图形绘制基础

前言本文介绍的是在Unity中绘制图形的相关知识, 并介绍了OpenGL的图形渲染管线流程, 并总结了几个初学者常见的问题.Unity中绘制一个简单的三角形只需要以下步骤:新建VertexHelper, 生成一个顶点缓冲对象VertexHelper.AddVertr往缓冲内添加顶点数据VertexHelper.AddTriangle往缓冲内添加三角形顶点索引数据新建一个Mesh,...

2018-10-09 00:10:02 454

原创 [注解]Execution Order of Event Functions: Unity生命周期及常见问题

版本: 2018.2原文: Execution Order of Event FunctionsScript Lifecycle Flowchart 脚本生命周期流程图The following diagram summarises the ordering and repetition of event functions during a script’s lifetime.In U...

2018-10-07 21:04:40 652

原创 [Unity优化]内存管理与程序性能优化

Unity 的自动内存管理Unity 内部有两个内存管理池: 堆内存和堆栈内存. 堆栈内存 (stack) 主要用来存储较小的和短暂的数据, 堆内存 (heap) 主要用来存储较大的和存储时间较长的数据. Unity 中的变量只会在堆栈或者堆内存上进行内存分配, 变量要么存储在堆栈内存上, 要么处于堆内存上只要变量处于激活状态, 则其占用的内存会被标记为使用状态, 则该部分的内存处于被分...

2018-09-10 00:23:19 2808

原创 [Unity优化]认识内存

title: [Unity优化]认识内存1.Unity的内存开销介绍1.1 本机堆内存占用在一个较为复杂的大中型项目中,资源的内存占用往往占据了总体内存的70%以上。因此,资源使用是否恰当直接决定了项目的内存占用情况。一般来说,一款游戏项目的资源主要可分为如下几种:纹理(Texture)、网格(Mesh)、动画片段(AnimationClip)、音频片段(AudioClip...

2018-09-09 21:55:28 297

原创 Unity中实例化对象销毁的分析

项目中在检查物体生命周期和进行资源对象和实例化对象回收的时候, 遇到了两个问题:组件在OnDestroy方法中, 调用了Destroy(gameObject)方法, 会不会出问题?组件在OnDestroy方法中, 能否取得到子物体的数据, 还是直接报空?这两个问题, 可以转换为以下几个可以通过简单代码验证的问题具有层级关系和同级关系的组件OnDestroy调用顺序是怎样?Un...

2018-08-04 23:51:40 3673

原创 C# 使用迭代器实现对自定义类的foreach遍历

假设我们实现了一个自定义栈, 需要对其从栈顶到栈底遍历一遍, 找到需要的元素. 我们可以在类内部提供一个迭代器GetEnumerator , 而不必实现整个 IEnumerable接口. 当编译器检测到迭代器时, 它将自动生成 IEnumerable 或 IEnumerable<T>接口的 Current、MoveNext&nbsp...

2018-07-29 20:52:21 1695

翻译 选择类还是结构体

One of the basic design decisions every framework designer faces is whether to design a type as a class (a reference type) or as a struct (a value type). Good understanding of the differences in the b...

2018-07-28 23:57:25 501

原创 提取UnityProfiler内存数据

ExtractProfilerMemoryan editor tool to save unity profiler memory编辑器工具, 用于提取UnityProfiler内存数据功能提取Unity Profiler窗口的内存Detailed数据支持Editor和通过IP连接手机来监测数据可以提取指定大小范围内的数据, 例如只输出内存大于1MB的数据可以指定输出的层级...

2018-07-21 21:47:18 2243

原创 Unity Cache Server了解和常见问题

Cache Server做什么 The cache server accelerates the import step. It does not touch source data. The cache server is independent of version control. It is even independent of your current project. ...

2018-06-30 21:09:47 1790

原创 用正则表达式判断IP地址是否合法

先了解IP的格式,它的形式应该为:(1~255).(0~255).(0~255).(0~255)//ip地址范围:(1~255).(0~255).(0~255).(0~255)private static Regex _ipReg = new Regex(@"^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1...

2018-06-23 22:24:02 1478

原创 Unity优化 处理AB包中被依赖的冗余内部资源

unity的内置资源类型有四种:Shader,Material,Texture以及Sprite unity_builtin_extra是Unity内部使用的一个资源库, 我们在打包AB的时候, 无法像对待外置资源那样对内置资源进行打包, 这样可能会造成AB中冗余的内置资源解决问题的方法可以是修改对这些内部资源的引用. 例如将对内部shader的引用, 修改为对项目自定义shader的引用....

2018-06-23 22:21:30 4574

原创 Unity 中实用方法的记录

我们要读取Assets目录同级的文件夹Assets.diff, 该文件夹的全路径可以这样获得://方法一DirectoryInfo topDir = Directory.GetParent(Application.dataPath);string diffFilePath = topDir.FullName + "/&amp

2018-06-23 21:22:12 796

原创 C#字符串中的用法

MSDN中对字符串使用做法的建议:Best Practices for Using Strings in .NET本文做一些使用方法的记录和补充. 一. 对字符串用法的建议1. 当进行字符串操作时, 显式指定字符串比较规则, 即调用具有StringComparison类型的参数的方法重载.原因如下:具有默认参数的一些重载执行序号比较, 而其他重载执行的是区分区...

2018-06-23 20:47:23 371

原创 透明通道中的预乘

NGUI的Atlas Maker视图中, 有一个选项是 PMA Shader打开NGUI源码, 发现在UIAtlasMaker.OnGUI中有一段代码 if (!fixedShader) { GUILayout.BeginHorizontal(); NGUISettings.atlasPMA = Editor...

2018-06-16 19:21:14 1676

原创 ngui源码中关于图集(UIAtlas)一些有用的方法记录

title: [unity] ngui源码中关于图集(UIAtlas)一些有用的方法记录0. 说明:texture表示图集使用的大图片, 例如:sprite表示被打包进图集的小图片, 例如:1. 计算一个图集中的texture打包率 / 使用率 / sprite入住率在ngui内置的打包图集脚本UITexturePacker中, 有一个方法Occupancy, ...

2018-06-16 11:13:29 2060 1

原创 Unity 实现人物相机前后跟随, 带延迟效果

效果图:需求:相机在人物后上方, 相机跟随人物前后跳动而做延迟跟随实现方法:1.将相机移动到人物右上方合适的位置2.在相机下面创建空物体, 并命名为CameraAnchor , 此时它的Position为(0,0,0) 3.将CameraAnchor 拖到需要跟随的人物物体里面, 成为它的子物体. 此时CameraAnchor 的Position已发生改...

2018-06-03 16:42:07 3194

转载 优化UGUI的ScrollRect

最近忙于性能优化,深切体会到二八法则真是指导高(tou)效(lan)工作的有力武器。这个礼拜花了几天解决了一个实际问题:UGUI的ScrollRect加载太多物体的时候,第一次弹出界面会非常卡顿,而且不在界面里的内容依然会参与绘制(毫无意义的浪费…)。ChangeLogv1.03 终于支持了ScrollBar,支持直接创建v1.02 Bug Fixes,无尽模式v1.01 重构了...

2018-05-31 21:45:38 332 1

原创 Unity中使用DOTween实现数字滚动效果

0. 实现背景:玩家在游戏中获得金币或战力等, 需要明显地显示出数字的变化, 可以采用数字滚动效果1. 最终实现效果图:2. DOTween相关术语:Tweener 一个tween控制value和animatesSequence 一个特殊的tween,并不是控制value,和其它的tween一起成为一个动画组Tween 一个普通词,既可以表示Tweener也...

2018-05-29 00:50:42 15407

原创 [Unity小项目]俄罗斯方块

Unity实现俄罗斯方块Demo:下载地址:MyTetris.apk环境:Unity2018.1主要技术:MVC, DOTweenTODO:[x] UI风格修改[ ] 行清除动画[ ] 相机抖动[ ] 方块急速下落[ ] (欢迎提建议呀 >&am

2018-05-24 01:29:59 6709 2

原创 Lua 闭包

闭包简单的说闭包是一个函数加上它可以正确访问的 upvalues。技术上来讲,Lua中只有闭包而不存在函数,函数仅仅是闭包的一个原型声明(一种特殊的闭包)function newCounter() local i = 0 return function() -- anonymous function i = i + 1 return...

2018-05-22 22:08:10 580

原创 Lambda 表达式

Lambda 表达式是一种可用于创建 委托 或 表达式目录树 类型的 匿名函数 。 通过使用 lambda 表达式,可以写入可作为参数传递或作为函数调用值返回的本地函数。 Lambda 表达式对于编写 LINQ 查询表达式特别有用。若要创建 Lambda 表达式,需要在 Lambda 运算符 =>左侧指定输入参数(如果有),然后在另一侧输入表达式或语句块。 例如,lambda 表达式 x...

2018-05-20 15:58:39 189

原创 C# 匿名方法

C# 匿名方法C# 2.0 引入匿名方法,在 C# 3.0 及更高版本中,Lambda 表达式取代匿名方法作为编写内联代码的首选方式。 但是,本主题中有关匿名方法的信息也适用于 Lambda 表达式。 在有一种情况下,匿名方法提供 Lambda 表达式中没有的功能。 ==使用匿名方法可省略参数列表==。 ==这意味着匿名方法可转换为具有多种签名的委托==。 Lambda 表达式无法实现这一点。...

2018-05-20 15:52:03 489

原创 Lua 元表与元方法

算术类的元方法对于每一个算术运算符,metatable都有对应的域名与其对应,除了__add、__mul外,还有__sub(减)、__div(除)、__unm(负)、__pow(幂),我们也可以定义__concat定义连接行为。当我们对两个表进行加没有问题,但如果两个操作数有不同的metatable例如:s = Set.new{1,2,3}s = s + 8Lua选择me...

2018-05-20 15:37:41 693

原创 UGUI源码试探究 (三) Graphic家族

0. Graphic家族的类图1. Image1.1 Source ImageImageEditor.cs 中找到关于Source Image的代码 而m_SpriteContent与m_Sprite有关在Imagg.cs中, 如果SourceImage使用的不是默认的贴图, 则使用的是overrideSprite属性, 它返回字段activeSprite...

2018-05-08 16:27:29 484

原创 UGUI源码试探究 (二) 事件系统

UGUI源码试探究 (二) 事件系统1. 按钮响应的过程按钮注册事件 设置断点, 鼠标点击按钮, 触发断点查看此时的调用堆栈我们来到栈底: 鼠标按下之后, EventSystem.Update调用了第一个方法来到了StandaloneInputModule.Process如果鼠标抬起的元素跟鼠标按下的元素一样的话如何获得鼠标按下...

2018-05-01 16:50:07 513

原创 UGUI源码试探究 (一) 图形绘制

UGUI源码试探究 (一)1. 前言1.1 UGUI是什么UGUI是Unity官方推出的UI系统, 集成了所见即所得的UI解决方案, 其功能丰富并且使用简单, 同时其部分源代码也是开放的下载地址:https://bitbucket.org/Unity-Technologies/ui/src2. 图形绘制2.1 绘制基础Mesh:通俗的讲, ...

2018-04-29 15:10:07 1711

原创 Unity实现基于UGUI的简易UI框架

Unity实现基于UGUI的简易UI框架什么是UI框架?UI框架中的 UIManager 管理场景中所有的面板, 控制面板之间的跳转. 本Demo实现以下功能:关闭当前页面显示新的页面 叠加显示关闭当前页面并显示关闭所有页面并显示安卓返回键响应 返回上一个页面退出程序设计UI页面先搭建好所有的UI界面, 并保存为prefab...

2018-04-26 13:45:52 9248 2

转载 把 ref 和 out 关键字说透

ref 和 out 的区别网上有很多这方面的文章,但是大部分人总是纠结于他们在原理上的那一点点细微的区别,所以导致了难以区分它们,也不知道什么时候改用哪一个了。但是如果从试用场景的角度对它们进行区别的话,以后你一定不会再纠结了。当你明白它们的适用场景后,再去扣其中的原理,使用中的一些问题也就迎刃而解了~简单的来说,它们的区别在于:ref 关键字 是作用是把一个变量的引用传入函数...

2018-04-24 18:44:24 455 2

原创 C#笔试面试题

C#中堆和栈的区别堆与栈的概念及不同点:在内存中栈主要负责处理线程中的命令,并且是以栈Stack的形式读取与执行的;堆主要是存储方法体以及数据,类似于床上散落的衣服,可供随机读取。堆和栈上的垃圾回收:栈有自我维护特性,执行完语句马上释放不会造成资源泄漏。堆则需GC回收,并且符合GC回收的规则,很多堆上的内容在程序退出前都没有被回收,很可能是无意中某处还保留着内容的引用导致,这将严重影响性能...

2018-04-24 17:55:46 2105

转载 从NullObject谈C#6.0改进

从NullObject谈C#6.0改进前言​ 本文来聊一聊我们经常会做的空值检查问题,从一个简单的空值检查Any Where,到设计模式的NullObjectPattern,再到C#6.0“可能”会提供的语法,让我们体验一次语言开发上的“持续改进”,Let’s go~什么是空引用异常​ 作为一个敲过代码的码农来说,似乎没有谁没有遇到过Null...

2018-04-24 17:43:37 188

原创 C#中结构体, C#与类的区别

C#中结构体, C#与类的区别结构体的声明不能使用关键字 struct声明一个结构; 可以使用new来声明一个结构//CoOrds 是一个结构体CoOrds coords1;//直接声明CoOrds coords1 = new CoOrds();//使用new关键字, 调用默认构造函数CoOrds coords2 = new CoOrds(10, 10);//使用new关键...

2018-04-24 11:50:19 298

转载 游戏开发中网络通讯协议对比

在网络游戏开发中,通讯协议是一个无法被避免的问题,无论对于客户端开发中还是服务器开发程序猿而言,制定一个合适的通讯协议是很有必要的游戏联网需求有弱联网游戏,即时互动类游戏选择通讯协议的时候主要关注于延迟低,易用,低成本等下面对比TCP,UDP,HTTP,WebSocket 四种协议优缺点、特性1. TCP:优点: 可靠性 、全双工协议、开源支持多、应用较广泛、面向连接、研发...

2018-04-21 17:49:17 292

原创 图解HTTP-2-简单的HTTP协议

2. 简单的HTTP协议2.1 HTTP协议用于客户端与服务端之间的连接客户端: 请求访问文本或图像等资源的一端服务端: 提供资源响应的一端2.2 通过请求和响应的交换达成通信请求必定由客户端发出, 而服务端回复响应2.2.1 请求报文请求报文是由请求方法, 请求URI, 协议版本, 可选的首部字段和内容实体构成的.2.2.2 响应报文...

2018-04-21 15:03:07 774

原创 图解HTTP-1-了解Web及网络基础

1. 了解Web及网络基础1.1 万维网(英语:World Wide Web)亦作“WWW”、“Web”, 是一个由许多互相链接的超文本组成的系统, 通过互联网访问.1.2 Web三个基本概念访问信息的手段与位置(URI): URI与URL的区别是什么?信息的表现形式(HTML): wikipedia信息转发(HTTP): wikipedia:HTTP协议:...

2018-04-21 14:56:06 260

转载 教你透彻了解红黑树

教你透彻了解红黑树本文转载自: https://github.com/julycoding/The-Art-Of-Programming-By-July/blob/master/ebook/zh/03.01.md二叉查找树由于红黑树本质上就是一棵二叉查找树,所以在了解红黑树之前,咱们先来看下二叉查找树。二叉查找树(Binary Search Tree),也称有序二叉树(ordere...

2018-04-17 19:18:46 108

原创 二叉搜索树的基本操作及其变体

1. 什么是二叉搜索树二叉搜索树可以使用一个链表数据结构来表示, 每个结点就是一个对象. 除了keykeykey和卫星数据(satellite data, 该对象附带的其它数据)之外, 每个结点还包含着属性leftleftleft, rightrightright和ppp, 它们分别指向结点的左孩子, 右孩子和双亲. 如果某个孩子结点或父结点不存在, 则该属性的值为NIL. 根结点是树中唯一父...

2018-04-17 16:38:24 316

原创 如何基于最大堆实现最大优先队列

1. 优先队列优先队列(priority queue)是一种用来维护由一组元素构成的集合A的数据结构, 其中的每个元素(xxx)都有一个相关的值, 称为关键字(keykeykey). 一个最大优先队列支持以下操作:MaxHeapInsert(AAA, keykeykey): 将元素xxx插入到集合AAA中HeapMaximum(AAA): 返回AAA中具有最大关键字的元素Heap...

2018-04-16 12:06:55 506

原创 完全二叉树的应用 - 图解堆排序算法及代码实现

1. 二叉堆堆是一个数组A, 它可以被看成一个近似的完全二叉树 以(a)二叉树和(b)数组形式展现的是一个最大堆. 结点上方的数字是它在数组中相应的下标.若一个结点下标为iii, 可以得到它的父结点, 左孩子和右孩子的下标:PARENT(iii) return i/2i/2i / 2LEFT(iii): return 2i2i2iRIGHT(iii): ret...

2018-04-14 22:02:50 2101

[文字版] Lua程序设计 第四版 Programming in Lua, Fourth Edition

英文原版, 高清, 文字版, 非扫描, 挺不错的, 中文版现在还找不到, 需要的可以凑活着用, 资源也便宜

2018-10-19

UGUI源码试探究 (一) MyImage包

[UGUI源码试探究 (一)](https://blog.csdn.net/jingangxin666/article/details/80143176)

2018-04-29

Unity连接MySQL数据库配置包plus

包括.dll文件, 测试场景和测试代码 使用环境为: win10; unity 5.6.3; MySQL9

2017-12-03

Unity连接MySQL数据库配置包

Unity连接MySQL必要配置,包括.dll文件, 测试场景和测试代码 使用环境为:win10; Unity5.6.3; MySQL9

2017-12-03

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

TA关注的人

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