自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Zero

0才是一切的开始~

  • 博客(36)
  • 收藏
  • 关注

原创 对称二叉树

题目给定一个二叉树,检查它是否是镜像对称的。例如,二叉树 [1,2,2,3,4,4,3] 是对称的。1/ \2 2/ \ / \3 4 4 3但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的:1/ \2 2\ \3 3来源:力扣(LeetCode)链接:https://leetcode-cn.com/prob...

2019-11-10 11:15:22 205

原创 最大子序列和

题目给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4],输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/maximum-subarray著作权归领扣...

2019-11-10 10:58:37 224

原创 两数相加

题目给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -&g...

2019-11-09 21:29:33 238

原创 三数之和

题目给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。例如, 给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[[-1, 0, 1],[-1, -1, 2]]来源:力扣(LeetCode)...

2019-11-09 20:59:26 220

原创 两数之和

题目描述给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]分析暴力解...

2019-11-09 20:28:55 194

原创 public、private、protected、internal的区别

public、private、protected、internal和protected internal都是C#中的访问控制修饰符,用于修饰类或者成员的可访问性级别。public:表示同一程序集中的任何其他代码或者引用该程序集中的其它程序集都可以访问该类型或成员private:表示只有同一类或者同一结构体中的代码可以访问该类型或成员protected:表示同一类或者该类派生的子类中的代码可...

2019-11-02 16:42:43 1856

原创 关于UPR的使用及各Profiler参数

工欲善其事,必先利其器对于项目中出现的闪退,卡顿等问题,我们需要有线索去进行分析,就像破案一样,根据现有的信息数据去分析并一步步找到破解方案。在Unity编辑器下,我们可以使用Unity Profiler来进行分析,而对于真机,我们可以使用Unity推出的方案-UPR。关于UPRUPR出现的原因UPR是Unity于2019年提出的性能测试分析解决方案,Unity团队在分析市场上的工具后,...

2019-10-20 21:09:58 3365

原创 关于WaitForTargetFPS、Gfx.WaitForPresent等Profiler参数

WaitForTargetFPS在设置了目标帧率Application.targetFrameRate,并且CPU耗时较短时,可以在Profile中看到这个参数的出现。他的主要目的是用于维持目标帧率,编辑器模式下Unity通过WaitForTargetFPS来模拟垂直同步的延迟,Unity引擎通过计算上一帧的CPU耗时来评估这一帧需要等待多久才能达到目标帧率,这个等待的时长就是WaitForT...

2019-10-11 22:41:19 3226

原创 Unity中的内存管理

游戏运行过程崩溃,运行卡顿,与内存的关系很大。了解Unity的内存类型及其相关优化能让我们的游戏更加流畅稳定。Unity中的内存分类Unity的内存可以分为以下三大类:程序代码托管堆内存资源内存程序代码内存程序代码包括了Unity引擎本身代码、第三方库和开发者自己编写的代码。Unity代码编译后的运行文件会被加载到设备中使用,这是需要消耗内存的,而且这部分内存我们无法进行管理,他...

2019-08-31 16:02:24 599

原创 Unity中对帧率设置的逻辑

参照的是这份文档:https://docs.unity3d.com/ScriptReference/Application-targetFrameRate.htmlApplication.targetFrameRateApplication.targetFrameRate用于设置Unity游戏的帧率,其默认值为-1。值为0或者-1时,在standalone上表示其最高可达到的帧率,而在手机...

2019-08-09 08:48:44 1914

原创 Effective C# 读书笔记

前言以下的总结是笔者在阅读《Effective C#》时做的笔记,本书的编程环境时C#6.0,但笔者主要会从Unity开发着的角度剔除其中在Unity编程中无法用到的建议来方便Unity开发者阅读。C#语言的编程习惯能用的东西为什么要改?因为改了之后效果更好。C++,Java的开发者会习惯的把他们之前的开发习惯带到C#中来,但这有时候不是一件好事,这一部分会让大家知道C#的语言编程习惯。优...

2019-07-21 10:24:21 213

原创 关于Unity中的目录

打开一个Unity工程,会看到其中有不同的目录,Unity工程的外部目录也有不少的目录,了解这些目录能帮助我们了解整个资源加载和导出的流程。Resources目录特点Resources目录中的内容在打包时会直接被打到发布包中去。Resources目录有以下特点:只读,无法动态更改,所以需要热更的资源不能放在这个目录里目录内的资源会集成到.asset文件里使用Resources.Loa...

2019-07-06 11:00:52 4829

原创 渲染流水线

渲染流水线是将模型、光照、纹理等数据渲染成一幅2D图像的一个序列过程。渲染流水线的功能总结的来说渲染流水线的主要功能是在给定虚拟相机、光源、照明模式、三维物体以及纹理等诸多条件生成一幅二维图像的过程。如上图,左侧的三维物体经过渲染流水线最终成为了右侧的2D图像,这其中影响2D图像生成的条件有相机位置,相机FOV值,相机投影方式,模型数据,贴图格式,着色器等诸多条件。关于渲染流水线的发展...

2019-06-30 11:27:29 378

原创 Unity脚本生命周期

Unity脚本周期概览运行Unity的脚本时,程序将会按照预定的顺序去执行相应的函数,从脚本的初始化到脚本的销毁,构成了脚本的生命周期。Unity脚本的生命周期预览图如下:生命周期的不同阶段上图中的多个函数可以根据其执行的时间段分为以下不同阶段。首场景加载阶段以下的函数在场景加载时调用,且在加载时只调用一次(OnEnable可能在后续进行多次调用)Awake:在Prefab进行实例...

2019-06-21 22:55:46 849

原创 Python难点解析---高级篇2.Pythonic

何为Pythonic在《The Zen of Python》中,有以下说明Python的禅意的内容:Beautiful is better than ugly.Explicit is better than implicit.Simple is better than complex.Complex is better than complicated.Flat is better ...

2019-06-21 20:39:41 238

原创 Python难点解析---高级篇1.装饰器

从一个假设说起假设我们现在有一个函数foo,函数如下:def foo(val1, val2): val = val1 + val2 print val现在老板有一个需求,想让你看下这个函数的运行时间,那么你能怎么做呢?可能这样?def foo(val1, val2): import time startTime = time.time() val = val1 +...

2019-06-21 20:33:03 175

原创 Python难点解析---初级篇3.迭代(可迭代、迭代器、生成器)

什么是迭代Wiki定义:是重复反馈过程的活动,其目的是为了接近并到达所需的目标或结果。在程序中,迭代是一种遍历集合元素的方式,我们可以通过索引值递增来遍历集合元素,而迭代是遍历集合元素另一种方式。下面是使用索引来进行遍历集合元素的方式:val = [1,2,3,4,5]for i in range(len(val)): retVal = val[i]这种方式在C++中很常...

2019-06-21 20:31:17 173

原创 Python难点解析---初级篇2.一切皆对象

在刚开始接触Python的时候,就一直听到一句话:一切皆对象那么,对于对象他有一些什么重要的属性呢。Python对象的属性对于一个对象而言,他首先应该是具备类型这一属性,那么类型对应的则是值,由于对象都是在内存中生存的,所以他也应该拥有一个地址。因此,作为一个对象,他会有以下三个属性:类型值地址先看以下代码,对于一个变量a有以下的定义:a = 1b = "hello ...

2019-06-21 20:29:43 200

原创 Python 难点解析---初级篇1.Python WWH

Python作为一个使用简便,并且开发效率极快的解释型语言,上手特别的简单,但是简洁的语法中有时也藏着不少的坑,接下来的文章里面会把笔者近一年学习中遇到的坑都翻出来。接下来用WWH原则来解析一下Python。What:Python是什么语言性质:上面已经说过,Python是一门***解释型语言***,他与编译型语言的区别在于运行前不需要直接编译成机器语言,而是在运行时将程序翻译成机器语言。...

2019-06-21 20:28:19 380

原创 Git仓库占用空间太大的解决方法

Git仓库占用空间太大的解决方法$ git gc$ git gc --aggressive$ git gc --autoMac机的500G容量在一段时间后,快被撑满了,现在需要给Git本地库减肥,开始健身。下面有几个针对这种情况的常见指令可以使用。$ git gcgc意味着垃圾回收(garbage collect),使用git gc指令,可以将松散的文件压缩。具体流程如文档所说:“Git...

2019-05-26 09:18:31 18244

原创 Windows cmd 自动cherry-pick工具

Windows cmd 自动cherry-pick工具原因基本自动化流程细节原因由于工作流程需要,策划在让我们提交到develop分支后还需要同时提交到release分支,一般的操作则是,先在develop分支提交,获得commit id(这里标为commit_id),然后切换到release,再使用git cherry-pick commit_id指令进行提交,然后再git push即可。...

2019-05-14 17:41:53 564

原创 Unity UGUI 本地化方案 - Localiztion Tool

问题及难点相信做海外游戏代理的同学一定会遇到需要做本地化的问题,其中资源可以通过替换合图来处理。而文本是其中一个比较难处理的问题。其中主要难点在于UGUI本身没有提供相应的插件,而对于一开始没规划的项目来说,你需要去找出其中所有的外语文本,找到后再将对应Text控件替换成你自定义的控件,替换后再需要填入对应的Key值。这对于策划来说简直是恶梦~工具的基本原理Localization...

2018-06-10 14:22:30 4224 3

原创 使用Cocos Creator 开发微信小游戏(一)—— 项目配置与环境搭建

项目配置与环境搭建第一次打开Cocos Creator界面,就感觉,这很Unity啊,虽然有不少地方还没有完善,但是对于开发小游戏这样轻量级的游戏是够用的了,所以用过Unity的同学上手会特别快。这个教程也会照顾没用过Unity的新手,所以,放心看吧~环境配置第一步 CocosCreator这个是Cocos Creator的官网,点击下载适合你的安装程序,然后安装,接着打开Cocos...

2018-05-06 12:59:59 10365 8

原创 Unity Shader学习-1.渲染流水线

先了解一下什么是流水线:(下面是百度百科的定义) 流水线:流水线又称为装配线,一种工业上的生产方式,指每一个生产单位只专注处理某一个片段的工作,以提高工作效率及产量一、什么是渲染流水线1.概念渲染流水线的概念与上面说到的流水线的概念也是一致的,其主要任务是输入一个三维场景,然后输出一个二维的图像。这个过程是由CPU和GPU一起完成的。2.渲染流水线的三个阶段渲染流水线可以分为三个阶段:应用阶段

2016-08-07 16:25:57 1127

原创 《黑客与画家》读书笔记

读完这本书,感觉自己要努力的还有很多,还可以有更多的创造力、更多的胆量、更多的尝试。下面是读书过程中记录的一些比较有感悟的文段:基本运算符对语言的重要性 我认为,基本运算符是一种语言能否长期存在的最重要因素、其他因素都不是决定性的。这有点像买房子时候你应该先考虑地理位置。编程语言进货缓慢的原因 语言只是一种书写法,而程序则是一种严格符合规则的描述,以书面形式记录计算机应该如何解决你的问题

2016-07-28 00:12:49 480

原创 Lua入门教程 7.编译、执行与错误

0x07编译、执行与错误 Lua虽然是一种解释性语言,但Lua允许在运行源码前,先将源码预编译成一种中间形式。1.编译与执行Lua提供了dofile loadfile两个接口来从文件里加载Lua的代码块,但它不会运行代码,而只是编译做对,然后将编译结果作为一个函数返回function dofile (filename) local f = assert(loadfile(filena

2016-06-26 14:04:54 492

原创 Lua入门教程 6.迭代器与泛型for

0x06迭代器与泛型for 所谓迭代器就是一种可以遍历一种集合中所有元素的机制。迭代器与Closure每个迭代器都需要在每次成功调用之间保存一些状态,这样才知道下一步进行到何处,而Closure则为这一任务提供了很好的支持。function value (t) local i = 0 return function () i = i + 1; retur

2016-06-19 14:22:45 944

原创 Lua入门教程 5.函数

0x05 函数定义与调用形式定义:函数是对语句和表达式的抽象。函数的调用形式:无论是语句或者表达式,都需要将所有参数放到一对圆括号中。即使调用没有参数也必须写出一对空括号。 注:此条规则对一种情况例外—一个函数只有一个参数,并且此参数是一个字面字符串或者table构造式(见下列代码)print "Hello World" --只有一个参数且为字面字符串f{x = 20, y = 30}

2016-06-04 19:20:49 499

原创 Lua入门教程 4.语句

0x04 语句Lua支持的赋值语句与常规的C或Pascal语言中所支持的语句差不多,此外还还支持多重同仁和局部变量声明赋值###普通赋值a = "Hello World"b = a .. "nooo"Lua的普通赋值的意义就是用于改变变量的值###多重赋值 Lua还支持多重赋值,即*一次性将多个值赋予多个变量*a,b = "Hello", "World"` --> `a = "Hello

2016-06-03 20:06:09 403

原创 Lua入门教程 2.类型与值

0x02基础类型Lua有总共8种基础类型: nilbooleannumberstringuserdatafunctionthreadtablee.g:print(type("hello")) -->stringprint(type(2)) -->numberprint(type(true)) -->booleanprint(type(print)) -->functio

2016-06-03 19:42:59 394

原创 Lua入门教程 1.准备知识

0x01 准备知识关于编码 在安装了Lua For Windows后,用户可以有三种方式进行Lua的开发: a.使用内置的SciTE编辑器,自带的编辑器提供了智能提示和编译运行等功能。 b.使用Windows命令窗体进行,使用Lua xx.lua文件便可执行对xx.lua文件的编译和运行 c.使用Lua的控制窗体,直接在里面输入代码即可 e.g > print(

2016-06-03 19:27:05 455

原创 Lua入门教程 0.环境配置

Lua环境需要依赖一个C++的环境包,开始时安装了VS2010居然也无效,后来到网上下载”vcredist_x86”安装包,并将其放于从Lua官网下载下来的Lua For Windows安装包的同一目录下就行了。# 步骤: 1. 下载 Lua For Windows,下载地址:http://luaforge.net/projects/luaforwindows/ 2.

2016-06-03 19:20:00 427

原创 Lua入门教程 3.表达式

0x01 表达式 算术操作符支持常规的算术操作符:二元的 + - * / ^ % 一元的 - 算术操作与C等语言一致 关系操作符Lua提供了以下的关系操作符:<,>,<=,>=,~= 所有这些操作符的运算结果都是true或false== ~=用于相等性测试,这两个操作符可以应用于任意两个值。如果值具有不同

2016-06-03 19:08:50 445

原创 [OGRE]1.从0开始,从2D到3D

初识OGRE:很早之前听说OGRE,是在学习Qt的时候,当时只知道Qt可以和一个叫OGRE的"游戏引擎"一起搭配使用,后来才发现原来OGRE不能算是一个游戏引擎,只能说是一个游戏引擎的一部分(一个游戏引擎包括了物理引擎,网络引擎,声音和渲染引擎等),OGRE只是其中的渲染引擎,负责图形方面的渲染而已,而其它那些游戏引擎的其它部分则是以插件的形式存在的.四元数:之前接触到的游戏引擎都是2D的

2013-06-17 00:20:12 944

原创 DES加密解密 使用bitset编写...

#include#include#include using namespace std;int IPTable[64] = { 58, 50, 42, 34, 26, 18, 10, 2, 60, 52, 44, 36, 28, 20, 12, 4, 62, 54, 46, 38, 30, 22, 14, 6, 64, 56, 48, 40, 32, 24, 16, 8, 57

2013-04-06 18:51:50 2946

翻译 1.RakNet工程设置

1.在VisualStudio中创建一个新的Win32控制台应用程序 .2.应用程序选项中选择"空项目",和"控制台应用程序",Windows应用程序也是可以的3.在项目目录下新建一个文件夹,找到RakNet的Source目录将RakNet的源码加进来4.右键点击项目选择添加新建项来添加一个main文件到你的项目中.5.因为我们把源码文件放在一个目录而不是工程中,我们需要inclu

2013-03-04 10:25:14 448

空空如也

空空如也

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

TA关注的人

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