自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(75)
  • 资源 (5)
  • 收藏
  • 关注

原创 [lua/unity/cocos2dx]关于云风pbc不支持int64的解决办法

其实这个很简单,因为源码都有,改改就好,但是估计有些人很担心改了之后出现各种问题解决不了,我通常是先改,出问题再说,哈哈。不过其实去看看源码,云风的代码还是写的很清晰的以上是废话找到pbc-lua.c搜索case PBC_INT64会发现这里对于int64的处理直接处理成了lua_Number,那么这里就可以根据个人需求来修改了。不过看pbc其他地方的处理,会发现其他地方通

2017-03-03 16:41:48 3879

原创 [笔记][Cocos2d-x]关于 “不是一个有效的 Android 目标平台” 的编译错误

网上说什么下载相应的谷歌API就行了,实际上是cocos lib工程的设置有问题,我用eclipse打开后发现依赖的API变成了那啥image,忘了截图,因为怕以后再出现这种情况就在SDK Manager删除了。网上很多都说是要把那些个image都下载简直是害人,浪费时间还没用,那些根本对编译一点影响都没有,我是抱着死马当活马医就试了一下根本没用。简单来说就是每个API都会有个Go

2017-01-09 20:52:28 1990

原创 Unity调用WebService的方法,支持IL2CPP

关于这个话题,网上也是有不少了,不过只从iOS需要IL2CPP后,那些方法基本上都没用了,因为C#原本的办法是通过生成代理类来进行访问,那个代理类都是使用C#反射,自然没法用,如果知道原理的话其实都很容易自己去实现,不过哪有那么多时间去学习那个玩意的原理,省下来的时间购泡几个妹纸了正题开始使用 http://easywsdl.com/WsdlGenerator 这个玩意就可以很容易

2016-12-27 14:39:36 1219 3

原创 [Unity]关于Unity5.5以及5.4.x中的UGUI在安卓中出现Image不显示的BUG的解决办法

使用Instantiate创建UGUI的元件,就有可能会出现看不到的情况,这种看不到不只是看不到,连事件本身也是无法接收,如果调试会发现物体是在场景中存在的。如果Canvas设置成overlay就不会有这个问题,但是这个不是解决办法,因为总有需要设置摄像机的时候。其实目前最简单的办法就是Instantiate后设置gameObject.SetActive(false)再设置

2016-12-27 14:05:21 2955

原创 C# SQL Server 操作笔记

首先目前我接触的语言连接SQL Server都需要提供一个连接字符串,所以做过的都知道怎么弄,实际上我大部分时候记不住,大概的格式为 var str = "Provider=SQLOLEDB.1;" + "Password=" + pw + ";" + " Persist

2016-09-23 22:45:35 513

原创 [吐槽]每次上来都可以看到些私信什么的

我只想说等我看到也都是几个月前的事情了,比较现在找资料很难找到CSDN所以几乎不会打开,CSDN的干货也是越来越少,我也不喜欢加一堆人回答问题

2016-09-14 14:11:25 432

原创 [uLua]关于ulua打包到安卓后无法加载Global的简易解决方法

在这里我想吐槽ulua自己网站上的(非官方)回答,那根本不能叫回答,说什么熟悉打包的人都会知道,我只想说既然知道为何不顺便科普一下或者拿出解决方案。下面开始唧唧歪歪,不像麻烦的直接看这里 http://pan.baidu.com/s/1kTP9sTD   使用前记得先gen lua wrap file实际上熟悉Unity的人确实会知道是怎么回事,但是就算知道解决起来不简

2016-02-24 16:47:53 2700

原创 [笔记][unity]Runtime(运行时)将Texture转到Sprite

这个问题一搜索就能找到将Texture2D专为Sprite的方法,直接调用Sprite.Create即可,但是如果你是从网络下载下来的纹理,将会只是Texture而不是Texture2D,这让我想起以前做Java的时候可以将低级的直接强转成高级的然后使用,当时学的浅并不知道原理,只是Unity显然是不行的。这里我只找到了使用WWW下载的处理方法,其实WWW就有LoadImageInto

2016-02-21 14:21:47 9995

原创 [Unity]Android(安卓)代码安卓APK时,使用系统安装器安装的[最正确]办法(不弹出选择打开的程序)

关于这个办法的搜寻,又是只能找到一篇被到处转又没卵用的文章,我时相当气愤的。经过Google大法,最终找到正确的打开方式先来看看错误的打开方式String str = "/CanavaCancel.apk"; String fileName = Environment.getExternalStorageDirectory() + str; Intent intent

2016-02-18 13:54:53 4929 7

原创 [笔记]Unity5(5.1.2f1)中多边形碰撞器Polygon Collider 2D无法编辑

必须把物体的z轴置于0才可以编辑,在子级里面是0也没用,必须世界坐标是零才可以, 我的父级是z=500,于是我把物体的z改成-500就可以编辑了。Unity5 bug真是一堆堆 。。。

2015-09-01 22:43:01 7424 1

原创 Unity 使用C/C++ 跨平台终极解决方案(PC,iOS,Android,以及支持C/C++的平台)

PC的其实根本不用说,毕竟C#和C++交互的文章已经够多了,当然我自认为经过几次折腾后,几乎所有游戏需要到的操作我都掌握了(各种传参方法,各种坑,不懂的可以留言问,虽然基本上没人看,哈哈)废话不多说,我们主要来讲两大平台——iOS和android——与unity的native代码交互这里啰嗦一下就是去网上搜都是各种蛋疼的东西,比如如果要调用unity C#的

2015-08-22 23:19:37 22848 11

原创 C#利用反射动态加载DLL(C#)并调用其中的接口

看了很多文章都说反射怎么怎么慢啊,明显就是对于反射的理解不够。的确你可以方便的去调用一个DLL的函数(虽然我从来不觉得用函数名作为字符串去调用是方便的),就像C++也可以动态调用DLL里面的函数一样,但是用过C++的人都知道傻逼才自己去声明回调去一个一个调用里面的函数,除非你真的闲的蛋疼。但是C++有头文件可以include,这样编译器就知道这样行得通,而C#该怎么实现这样的Include?最

2015-01-22 18:39:18 11192 2

原创 使用iTween需谨慎 --- 内存泄露

iTween虽然各种性能不尽人意,但是用起来算是相当的傻瓜,可是为了方便使用,f

2014-09-13 02:37:08 5222 1

原创 原来lua读作撸额,而不是撸啊

Lua (/ˈluːə/

2014-09-12 14:36:30 8784 2

原创 关于unity android防止设备休眠

之前太傻直接用中文搜,就看到编写配置文件来防止休眠的,实际上那样非常不好控制也很麻烦,后来

2014-09-01 15:07:05 9569 5

原创 C# 与 C++交互的重要细节 结构体传递 数组传递 等 stdcall

函数签名必须是 stdcall 几乎很少有资料提到这个,示例代码里面也没有 __stdcall

2014-08-08 22:35:12 2372 2

原创 Unity的吐血巨坑之处 --- 发布版本和编辑器的纹理显示不一致

缓存。编辑器的缓存和正式发布的shh

2014-07-13 16:28:14 5270

原创 Unity 显示Loading(加载)进度 对于网上流行的方法进行更正

实际上就是MOMO贴出来的方法其实是有问题的,用过的才知道。至于别的几乎不用找,根本一个抄一个,抄来抄去都是一样,没自己的东西。用过MOMO那个方法的都应该会发现了,当进度条开始显示的时候,基本上已经加载到80%了,可能也跟Unity版本有关,我的是4.3.4 。但是实际上Unity的工作原理差不多就那样,在Start里面直接开始加载的协程,实际上一开始就会阻塞,导致画面刚刚渲染出来的

2014-06-06 19:55:11 34050 5

原创 Unity用C#DLL拓展

虽然了解C#的都知道可以这样了,但是我是刚知道的,主要是最近知道了HOTween这个

2014-05-27 15:45:14 1897

原创 Uniy开发笔记&注意事项

SendMessage会长同一帧调用Init

2014-05-24 00:54:24 1750 2

原创 Unity中巧用协程(Coroutine)做状态机

虽然这个其实在看了2dtoolkit的demo才知道的,我就简化一下让

2014-05-09 18:56:56 7653 4

原创 [笔记]VS2005中Debug遇到找不到msvcr80.dll的问题的解决办法

首先,这个问题在网上找了半天,什么设置MD的都是完全无用的,其实这是显而易见的,因为我在用的是MFC,又在DEBUG模式下面怎么会依赖msvcr80.dll?这个明显是Release库。于是看到有人说这是2005的BUG,我索性转到2008,于是又遇到另一个错误,说什么Runtime库错误之类,搜了一下,也是各种方法无效,最后找到个方法,忽略msvcrt.lib就可以运行了,但是一运行就各种错

2014-02-14 22:59:47 1321 1

原创 怀旧之使用汇编启动hge

虽然其实只是抄了一遍而已,不过之后我会考虑使用纯汇编启动一次看看 hge = hgeCreate(HGE_VERSION); hge->System_SetState(HGE_FRAMEFUNC, FrameFunc); hge->System_SetState(HGE_WINDOWED, true); if(hge->System_Initiate()) { hge->Sys

2013-11-28 06:23:00 1063

原创 最简单的Windows窗口程序,使用main函数,隐藏控制台等,适合window编程入门

#include #pragma comment( linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"" ) //隐藏控制台用,注掉后控制台和窗口一起出现LRESULT WINAPI WndProc(HWND,UINT,WPARAM,LPARAM);int main(){ HINSTANCE hInstance = Ge

2013-11-22 05:41:29 4566

原创 汇编学习笔记1 --- C内联汇编之Hello World

对于我这样写C/C++的人来说,估计学汇编的第一件事就是想试试内联汇编,以前看云风的代码那个感觉高端啊,虽然现在只会点皮毛还算是输出Hello World了,但是是依靠函数库实现的。char* a_ = "内联汇编";char* szStr = "Hello World!";__asm{push 0push a_push szStrpush 0call dwor

2013-11-19 02:31:28 1915

原创 关于C++Release后的优化感想

最近学了点汇编,虽然写不出什么代码,但是好歹看懂一点了。于是突然想去看看C++对代码优化到什么程度。首先看debug,debug是完全没有什么优化了,除此之外还加了很多检测的过程,难怪效率那么低。后来看Release,优化得很彻底,用不到的变量,全部去掉比如 int a=0;a++;不管你对a进行了什么操作,你最终没有真正使用它,那么就会除掉,这个大概不算什么,是个人都知道的道理。

2013-11-12 23:33:08 4067

转载 优秀程序设计的18大原则

1.避免重复原则(DRY - Don’t repeat yourself)编程的最基本原则是避免重复。在程序代码中总会有很多结构体,如循环、函数、类等等。一旦你重复某个语句或概念,就会很容易形成一个抽象体。2.抽象原则(Abstraction Principle )与DRY原则相关。要记住,程序代码中每一个重要的功能,只能出现在源代码的一个位置。3.简单原则(Kee

2013-10-22 11:01:08 785

翻译 使用SVN对Unity进行版本控制(Unity 3.5 and SVN, now easy and free for all!)

原文地址:http://blog.teamthinklabs.com/index.php/2012/04/11/unity-3-5-and-svn-now-easy-and-free-for-all/先吐个槽。关于这个国内各种简单到家的文章让人搞不懂,而且场景合并,prefab合并等关键问题都说没法解决,其实本质就是因为它们都是二进制文件,所以SVN没法对其合并,但事实上Unity是支

2013-07-27 18:10:53 3663

原创 struct tm转time_t

int status = luaL_dofile(L,"setting.ini");if (!status){struct tm dt;lua_getglobal(L, "year");dt.tm_year=lua_tointeger(L,-1);lua_getglobal(L, "mon");dt.tm_mon=lua_tointeger(L,-1);lua_ge

2013-07-12 23:56:50 1368

原创 lua笔记 --- 一个C++调用lua函数的类的实现

这个类基本上是从LuaPlus那里弄来的,为什么不支持用LuaPlus,因为那东西我实在不知道怎么编译,能编译通过的版本的旧版本的了,而且之前的版本有BUG的存在,使用起来有阴影,不想用了,还是自己写个比较靠谱。因为感觉LuaPlus那个LuaFunction有点不好用,所以进行了一些改造。自己认为目前自己封装的这个还是比较好用的。namespace Lua_Wrapper{stru

2013-05-12 15:45:31 2316 1

原创 lua5.1.4中实现自定义require的loader函数

刚开始以为只是简单的把自己的C函数,替换到package.loaders[2](索引2是lua的文件加载器)里面就OK了,实际上也是这样的,但是这样的代价就是文件搜索啊,一堆一堆的判断啊都要自己做,因为这些lua本身已经实现了,所以肯定直接拿来用之。但问题来了,发现直接简单的package.loaders[2]=myloadfunc是失败的。会抛出这个错误:luaL_error(L, LUA_

2013-05-11 23:04:55 6556

原创 luajit笔记---编译bytecode(字节码文件)

虽说这种东西其实没多少用,不过老板是烧饼所以不会承认的,不过编译之后别人反编译也看不到变量命这种自欺欺人的心理作用还是有点用的。于是发现lua5.1编译出来的字节码luajit是不能用的,后来去官网看到编译方法,输入后却说没有这个命令,卧槽。于是继续google,找到了一个跟我一样的家伙,后面有人给出解决方案了In the LuaJIT source distribution, the

2013-05-11 12:04:16 9681 3

原创 luajit笔记---luajit静态库依赖顺序问题

以前从来没有意识到,依赖静态库那里的填写顺序,会对编译结果有影响。不知道这是不是luajit静态库本身的问题。结论是,依赖顺序必须是lua51.lib luajit.lib反过来编译出来的东西就无法运行,会提示缺少luajit.exe,即使放入luajit.exe会继续提示缺少lua51.dll,继续满足条件,然后直接就崩溃。静态库本身就不会依赖什么DLL,这种错误是很明显的,不知道这

2013-05-06 19:55:12 2831

原创 luajit笔记---编译成静态库以及FFI绑定宿主程序函数

本以为可以像lua一样把代码丢进去直接编译就好了,结果发现luajit有一堆汇编代码,不知道怎么处理,后来一搜索才知道luajit本身提高的批处理也可以编译成静态库,就是在后面加个static,郁闷到了。Google来Google,终于看到用FFI绑定宿主程序函数的例子,卧槽,知道真相我的眼泪都流下来!原来FFI本质是绑定导出的符号,所以说只要导出符号就可以用,吐血。#incl

2013-05-05 22:07:04 9101 2

原创 FreeImage加载PNG8失败的原因找到了

之前用FreeImage加载PNG8出错,而加载PNG24缺没错,一直百思不得其解,认为是FreeImage库的问题,后来发现,各大引擎都用FreeImage,而区区PNG8就对付不了,明显说不过去,这说明是我的操作方式有误。于是建立一个简单的工程,测试那种加载不成功的PNG8图片,发现一点问题都木有,那么就是环境问题了。后来给FreeImage设置了一个错误回调,打印出来的是解压错误。回想其

2013-05-05 10:27:43 1974

原创 自己尝试实现了一个lua_Reader

为什么要自己实现呢,因为脚本这东西总要加密,lua似乎没有直接从内存读取脚本这东西,似乎dostring可以,不过因为听说效率较低所以pass,而且dostring也不能读取编译后的文件。其实纯C的函数指针和C++等高级语言的抽象接口差不多,不过灵活度还是要高很多。现在发现面向对象有些东西的确是太死板了,以前觉得模板这东西很强大,现在发现这个不过是来弥补先天的不足,那还不如C的函数指针来得直接

2013-05-03 23:13:52 3517

原创 编程小技巧笔记

变量的区间限制if(a>10)a = 10;if(a<0)a = 0;//优化a = min(a,10);a = max(a,0);

2013-05-01 14:31:34 774

原创 unity里面获取cmdline

因为有些时候要用到cmdline,如果是C++,那么很容易就从winmain那里获取到了,但是unity不知道怎么搞,去找了API没找到了,后来直接Google一下,其实只要去问.NET要就好了function GetCommandLineArgs() : String[] { Debug.Log("CommandLine: {0}" + System.Environment.Com

2013-04-20 16:25:11 2254

原创 std::map的陷阱 stack overflow

这个东西虽然看到很多测试说插入百万都没问题但是他们测试的往往是int类型做value  加入用自定义类型,特别是容器或者数组的时候,很容易堆栈溢出因为数才层数很高的时候,对堆栈消耗极大 为了方便,我是直接在std::map里面嵌套了std::list,这样就不用老是去new,省去了管理内存,结果debug没问题,release就直接堆栈溢出了。后来索性换成了stde

2013-04-20 14:07:35 1508 2

原创 Unity动态(Runtime)加载脚本

之前在群里跟人谈到脚本更新问题,于是就突然发现因为U3D对资源进行了打包,所以很难更新资源。说实在,我现在还没找到资源更新的办法,不过知道了资源可以从网络下载实时加载。后来看到有人说可以动态加载脚本,于是就去研究了。途中各种蛋疼不提也罢。其实基本原理就是使用到了C#的反射,熟悉反射的应该很简单就能解决。var fs = new FileStream(@"D:\Personal\My

2013-04-09 20:12:33 11357

即时战略DEMO中的A星算法与最近点查找

一个烂尾的即时战略游戏,内置了行军的简单阵型排布和高效A星寻路算法,通过二叉堆数据结构优化了A星搜索时间,属于个人早期的作品,现在拿来分享,基于HGE引擎,工程正常情况下应该可以通过编译并运行

2013-10-16

Lua/LuaJit 图片处理

Luajit可以直接加载C编译出来的DLL,绑定函数并调用。这里因为个人贪图freeimageplus的便利,又因为freeimageplus是C++编写,所以自己写了个DLL重新包装了个DLL来导出,其实现在看来完全是多余了。 内附的Lua代码包含了图片缩放,实际上也注册了zip打包函数,可以打成zip包。图片的路径从剪贴板获取,会扫描整个文件夹对所有图片进行处理。

2013-07-23

HGE动画编辑器v1.0

一个简单的HGE动画编辑器,实现了动画预览,脚本保存等一些基本功能

2013-06-16

HGE多线程渲染方案

使用循环队列最小锁实现底层多线程渲染。原始HGE接口未进行任何修改,理论上只需替换DLL即可实现多线程渲染,并且大幅度提高性能。 使用循环队列原来本来无需加锁,但由于我们的项目资源加载又开启了另一条线程,为了最简单实现,使用了加锁,否则可能需要再加入一个循环队列。 如果仅使用单线程加载,可以自己去锁。 目前效率测试,在CPU差的机器上性能提升非常明显,超过5倍以上。

2013-04-12

QT桌面精灵

基于QT的桌面精灵,实现了基本的动画和动作,简单的交互和菜单等

2012-12-12

空空如也

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

TA关注的人

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