自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

cbbbc

博客博客

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

转载 浅析 c# Queue

1、Queue定义System.Collections.Queue类表示对象的先进先出集合,存储在 Queue(队列) 中的对象在一端插入,从另一端移除。 2、优点1、能对集合进行顺序处理(先进先出)。2、能接受null值,并且允许重复的元素。 3、 Queue的构造器构造器函数注释Queue ()初始化

2016-03-30 10:50:54 468

转载 Unity3D研究院之提取游戏资源的三个工具支持Unity5(八十四)

这两天无意间又发现了两个提取Unity游戏资源的工具,这会儿刚好有时间我就码点字总结一下。一、disunity因为之前写过了所以这里就不介绍了 。Unity3D研究院之mac上从.ipa中提取unity3D游戏资源(六十六) http://www.xuanyusong.com/archives/2584二、UnityAssetsExplorer下载地址:http://www.n

2016-03-26 11:02:26 3828

转载 unity3D 如何提取游戏资源

首先感谢 雨松MOMO 的一篇帖子 教我们怎么提取 .ipa 中的游戏资源。教我们初步的破解unity3d资源的基本方法附上原帖的链接:http://www.xuanyusong.com/archives/2584下面我会从头介绍一下提取的全过程:步骤一:首先从https://github.com/ata4/disunity/releases 下载 DisUnity

2016-03-26 10:53:32 31784 3

转载 Unity3D asset bundle 格式简析

Unity3D 的 asset bundle 的格式并没有公开。但为了做更好的差异更新,我们还是希望了解其打包格式。这样可以制作专门的差异比较合并工具,会比直接做二进制差异比较效果好的多。因为可以把 asset bundle 内的数据拆分为独立单元,只对变更的单元做差异比较即可。网上能查到的资料并不是官方给出的,最为流行的是一个叫做 disunity 的开源工具。它是用 java 编写的,

2016-03-26 10:43:16 578

转载 Unity3D研究院之LZMA压缩文件与解压文件

前两天有朋友告诉我Unity的Assetbundle是LZMA压缩的,刚好今天有时间那么就研究研究LZMA。它是一个开源的类库,有C、 C++、C#、JAVA的类库,那么在我大Unity里面我们当然要使用C#的类库啦。下载地址:http://www.7-zip.org/sdk.html  或者在文章的最后下载我的测试工程、如下图所示,因为9.22是Beta版本,所以我们还是老老实实下载9.20

2016-03-25 14:52:01 1044

转载 Lua垃圾回收

Lua 通过特定算法的垃圾回收机制实现自动内存管理。由于自动内存管理机制的存在,作为程序开发人员:不需要关心对象的内存分配问题。不再使用对象时,除了将引用它的变量设为 nil,不需要主动释放对象。Lua 的垃圾回收器会不断运行去收集不再被 Lua 程序访问的对象。所有的对象,包括表、userdata、函数、线程、字符串等都由自动内存管理机制管理它们空间的分配和释放。Lua 实现了一

2016-03-24 11:03:20 1464

转载 Unity3D研究院之IOS&Android收集Log文件(六十二)

有段时间没有写过文章了,不知道大伙儿还记得雨松MOMO吗? 嘿嘿。开发项目的时候尤其在处理与服务器交互这块,如果服务端程序看不到客户端请求的Log信息,那么无法修改BUG。在Windows上Unity会自动讲Log文件写入本地,但是在IOS和Android上确没有这个功能,所以我想了个办法,把Log信息写在手机的客户端里。把如下脚本挂在任意游戏对象上即可。C#

2016-03-23 19:56:58 604

转载 Dorothy Lua开发建议

1.禁用全局变量可以在zbstudio中使用Analyze(Shift+F7)功能检查全局变量的使用。但是可以通过模块做数据的共享,但是只能共享基本数据类型包括string, number, boolean, table, 没有俘获userdata类型变量的function等,共享的table中也不能存有userdata。共享数据的模块写法如下:-- file SharedModule.l

2016-03-23 15:36:37 493

转载 基于 lua 的热更新系统设计要点

很久没写 blog 了,主要是忙。项目排的很紧,一个小项目上线,发现不少问题,所以把多余精力都投进去了。最后人手不够,亲自上场写代码。在不动大体的情况下,最大能力的修改了一些设计,并把能重写的代码重新写过了。这一周,写了三天半程序(其中通宵了一次)。平均每天写了千多行程序。基本上把原来项目里用的几万行东西替换下来了。重构总是能比老的设计更好,不是么? :) 不过这事不能老干,个人精力再充沛。故

2016-03-23 11:31:49 844

转载 Lua 中使用面向对象(续)--newproxy生成userdata使用__gc

上一篇文章给了一个面向对象的方案,美中不足的是没有析构函数 Destructor,那么这一次就给它加上。  既然是析构,那么就是在对象被销毁之前做该做的事情,lua 5.1 的 userdata 可以给其 metatable 增加一个 __gc 域,指定一个函数,将会在被回收时调用,这个 __gc 只能用于 userdata,普遍的 table 不支持;到了 lua 5.2 以后,官方支持了给

2016-03-22 23:34:13 2088 1

转载 lua gc 优化方案

此文章至少适合lua5.1在我的项目中,变量增减多了,就会在某轮lua gc中可能会大量调用alloc函数(特别指free,可以高达8万次当发生gc的时候,这将占用几十、几百毫秒的时间)造成cpu曲线不平滑,很容易给人卡顿的感觉解决方案有两种,一种是云风给出的多线程gc还有一种则是我正在用的,在不能修改lua引擎代码的情况(比如使用Bolt界面引擎)能很好发挥作用的方案:我称此

2016-03-22 23:00:56 3187

转载 编写高性能的Lua代码

前言Lua是一门以其性能著称的脚本语言,被广泛应用在很多方面,尤其是游戏。像《魔兽世界》的插件,手机游戏《大掌门》《神曲》《迷失之地》等都是用Lua来写的逻辑。所以大部分时候我们不需要去考虑性能问题。Knuth有句名言:“过早优化是万恶之源”。其意思就是过早优化是不必要的,会浪费大量时间,而且容易导致代码混乱。所以一个好的程序员在考虑优化性能前必须问自己两个问题:“我的程序真的需要

2016-03-22 19:49:49 604

转载 Lua的文件操作自定义上传头像

先简单介绍一下被迫使用Lua的IO的情境:游戏支持玩家自定义上传头像,在排行榜中会显示玩家列表(包括本服、跨服),原有的做法是先检测CCUserDefault中是否存在指定图片的key以及它的状态。然后在下载头像、下载完成后设置对应的状态。这样导致的一个问题就是CCUserDefault的读写完全失效了。整个游戏下载的补丁包判断和其它判断就完全失效了,不得卸载游戏后重装。个人目前的推测是由

2016-03-22 17:15:31 2468

转载 Lua标准库 - 输入输出处理(input and output facilities)

1、io表调用方式:使用io表,io.open将返回指定文件的描述,并且所有的操作将围绕这个文件描述  io表同样提供三种预定义的文件描述io.stdin,io.stdout,io.stderr2、文件句柄直接调用方式,即使用file:XXX()函数方式进行操作,其中file为io.open()返回的文件句柄  多数I/O函数调用失败时返回nil加错误信息,有些函数成功时返回n

2016-03-22 17:06:09 1123

转载 调试lua代码

lua没有调试器,但是它提供了很强的调试功能(debug 库), 所以其实一些常用的调试功能都能很方便的使用,就像使用一个命令行调试器一样:-- debug.luagvar1 = 100function foo() local var2 = 10 function bar() debug.debug()

2016-03-22 14:13:54 1360

转载 lua的Debug库

debug库并不给你一个可用的Lua调试器,而是给你提供一些为Lua写一个调试器的方便。出于性能方面的考虑,关于这方面官方的接口是通过C API实现的。Lua中的debug库就是一种在Lua代码中直接访问这些C函数的方法。Debug库在一个debug表内声明了他所有的函数。与其他的标准库不同的是,你应该尽可能少的是有debug库。首先,debug库中的一些函数性能比较低;第二,它破坏了语言的一

2016-03-22 14:08:23 552

转载 Lua中的异常处理pcall、xpcall、debug使用实例

这篇文章主要介绍了Lua中的异常处理pcall、xpcall、debug使用实例,这3个函数是Lua中的异常处理必须用到的,需要的朋友可以参考下如果需要在Lua中处理错误,必须使用函数pcall(protected call)来包装需要执行的代码。pcall接收一个函数和要传递个后者的参数,并执行,执行结果:有错误、无错误;返回值true或者或false, errorinfo

2016-03-22 12:05:07 9145 1

原创 C#中打印出当前堆栈

使用C#过程中,除了通过try catch中的exception来打印当前的堆栈信息,我们还可以主动通过System.DiagnosticsStackTrace这个类来主动打印出堆栈信息。   代码:using System;using System.Diagnostics;namespace Test2{    class Program    {       

2016-03-21 17:34:15 15460

转载 Lua中的模块(module)和包(package)详解

这篇文章主要介绍了Lua中的模块(module)和包(package)详解,本文讲解了require函数、写一个模块、package.loaded、module函数等内容,需要的朋友可以参考下前言从Lua5.1版本开始,就对模块和包添加了新的支持,可是使用require和module来定义和使用模块和包。require用于使用模块,module用于创建模块。简单的说,一个模块就是一

2016-03-17 20:40:05 7615

转载 lua编程 全局变量 环境 模块

1.全局变量与环境lua中真正存储全局变量的地方不是在_G里面,而是在setfenv(i,table)的table中,所有当前的全局变量都在这里面找,只不过在程序开始时lua会默认先设置一个变量_G=这个里面的table而已。所以在新设置环境后,如果还想找到之前的全局变量,通常需要附加上为新的table设置元表{_index=_G}下面的几个例子:a=1print(a)pr

2016-03-17 20:31:40 446

转载 深入理解Lua的闭包一:概念和应用

本文首先通过具体的例子讲解了Lua中闭包的概念,然后总结了闭包的应用场合,最后探讨了Lua中闭包的实现原理。闭包的概念在Lua中,闭包(closure)是由一个函数和该函数会访问到的非局部变量(或者是upvalue)组成的,其中非局部变量(non-local variable)是指不是在局部作用范围内定义的一个变量,但同时又不是一个全局变量,主要应用在嵌套函数和匿名函数里,因此若一个闭包没

2016-03-16 19:45:26 407

转载 Lua中的闭包小结

这篇文章主要介绍了Lua中的闭包小结,本文对闭包的概念做了讲解,同时给出闭包代码示例,需要的朋友可以参考下前言在很多语言中都有闭包的概念,而在这里,我将主要对Lua语言的闭包概念进行分析与总结。希望对大家学习Lua有帮助。什么是闭包?闭包在Lua中是一个非常重要的概念,闭包是由函数和与其相关的引用环境组合而成的实体。我们再来看一段代码:function newCount

2016-03-16 19:39:41 333

转载 Lua中的函数(function)、可变参数、局部函数、尾递归优化等实例讲解

这篇文章主要介绍了Lua中的函数(function)、可变参数、局部函数、尾递归优化等实例讲解,需要的朋友可以参考下一、函数在Lua中,函数是作为"第一类值"(First-Class Value),这表示函数可以存储在变量中,可以通过参数传递给其他函数,或者作为函数的返回值(类比C/C++中的函数指针),这种特性使Lua具有极大的灵活性。  Lua对函数式编程提供了良好的支持,

2016-03-16 15:37:40 1384

转载 Lua中的metatable详解

这篇文章主要介绍了Lua中的metatable详解,本文详细讲解了metatable的作用、定义操作符行为、为 Lua 函数库提供支持等内容,需要的朋友可以参考下Lua 中 metatable 是一个普通的 table,但其主要有以下几个功能:1.定义算术操作符和关系操作符的行为2.为 Lua 函数库提供支持3.控制对 table 的访问Metatables 定义操作符行为

2016-03-15 20:24:23 3840

转载 Lua中的string库(字符串函数库)总结

Lua解释器对字符串的支持很有限。一个程序可以创建字符串并连接字符串,但不能截取子串,检查字符串的大小,检测字符串的内容。在Lua中操纵字符串的功能基本来自于string库。字符串库中的一些函数是非常简单的:string.len(s)          返回字符串s的长度;string.rep(s, n)      返回重复n次字符串s的串;你使用string.rep("a", 2^2

2016-03-15 11:26:19 892

转载 LUA string库详解

1. string库中所有的字符索引从前往后是1,2,...;从后往前是-1,-2,...2. string库中所有的function都不会直接操作字符串,而是返回一个结果 string.byte(string [,pos]):返回第pos个字符的整数表示形式.如a为97.string.char(i1,i2...):i1,i2为整型,将i1,i2..等转化为对应的字符然后连接成字符

2016-03-15 11:18:36 392

转载 lua Date和Time

time和date两个函数在Lua中实现所有的时钟查询功能。函数time在没有参数时返回当前时钟的数值。(在许多系统中该数值是当前距离某个特定时间的秒数。)当为函数调用附加一个特殊的时间表时,该函数就是返回距该表描述的时间的数值。这样的时间表有如下的区间:yeara full yearmonth01-12day

2016-03-14 15:06:43 411

空空如也

空空如也

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

TA关注的人

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