- 博客(75)
- 资源 (5)
- 收藏
- 关注
原创 [lua/unity/cocos2dx]关于云风pbc不支持int64的解决办法
其实这个很简单,因为源码都有,改改就好,但是估计有些人很担心改了之后出现各种问题解决不了,我通常是先改,出问题再说,哈哈。不过其实去看看源码,云风的代码还是写的很清晰的以上是废话找到pbc-lua.c搜索case PBC_INT64会发现这里对于int64的处理直接处理成了lua_Number,那么这里就可以根据个人需求来修改了。不过看pbc其他地方的处理,会发现其他地方通
2017-03-03 16:41:48
3981
原创 [笔记][Cocos2d-x]关于 “不是一个有效的 Android 目标平台” 的编译错误
网上说什么下载相应的谷歌API就行了,实际上是cocos lib工程的设置有问题,我用eclipse打开后发现依赖的API变成了那啥image,忘了截图,因为怕以后再出现这种情况就在SDK Manager删除了。网上很多都说是要把那些个image都下载简直是害人,浪费时间还没用,那些根本对编译一点影响都没有,我是抱着死马当活马医就试了一下根本没用。简单来说就是每个API都会有个Go
2017-01-09 20:52:28
2061
原创 Unity调用WebService的方法,支持IL2CPP
关于这个话题,网上也是有不少了,不过只从iOS需要IL2CPP后,那些方法基本上都没用了,因为C#原本的办法是通过生成代理类来进行访问,那个代理类都是使用C#反射,自然没法用,如果知道原理的话其实都很容易自己去实现,不过哪有那么多时间去学习那个玩意的原理,省下来的时间购泡几个妹纸了正题开始使用 http://easywsdl.com/WsdlGenerator 这个玩意就可以很容易
2016-12-27 14:39:36
1323
1
原创 [Unity]关于Unity5.5以及5.4.x中的UGUI在安卓中出现Image不显示的BUG的解决办法
使用Instantiate创建UGUI的元件,就有可能会出现看不到的情况,这种看不到不只是看不到,连事件本身也是无法接收,如果调试会发现物体是在场景中存在的。如果Canvas设置成overlay就不会有这个问题,但是这个不是解决办法,因为总有需要设置摄像机的时候。其实目前最简单的办法就是Instantiate后设置gameObject.SetActive(false)再设置
2016-12-27 14:05:21
3083
原创 C# SQL Server 操作笔记
首先目前我接触的语言连接SQL Server都需要提供一个连接字符串,所以做过的都知道怎么弄,实际上我大部分时候记不住,大概的格式为 var str = "Provider=SQLOLEDB.1;" + "Password=" + pw + ";" + " Persist
2016-09-23 22:45:35
559
原创 [吐槽]每次上来都可以看到些私信什么的
我只想说等我看到也都是几个月前的事情了,比较现在找资料很难找到优快云所以几乎不会打开,优快云的干货也是越来越少,我也不喜欢加一堆人回答问题
2016-09-14 14:11:25
468
原创 [uLua]关于ulua打包到安卓后无法加载Global的简易解决方法
在这里我想吐槽ulua自己网站上的(非官方)回答,那根本不能叫回答,说什么熟悉打包的人都会知道,我只想说既然知道为何不顺便科普一下或者拿出解决方案。下面开始唧唧歪歪,不像麻烦的直接看这里 http://pan.baidu.com/s/1kTP9sTD 使用前记得先gen lua wrap file实际上熟悉Unity的人确实会知道是怎么回事,但是就算知道解决起来不简
2016-02-24 16:47:53
2769
原创 [笔记][unity]Runtime(运行时)将Texture转到Sprite
这个问题一搜索就能找到将Texture2D专为Sprite的方法,直接调用Sprite.Create即可,但是如果你是从网络下载下来的纹理,将会只是Texture而不是Texture2D,这让我想起以前做Java的时候可以将低级的直接强转成高级的然后使用,当时学的浅并不知道原理,只是Unity显然是不行的。这里我只找到了使用WWW下载的处理方法,其实WWW就有LoadImageInto
2016-02-21 14:21:47
10089
原创 [Unity]Android(安卓)代码安卓APK时,使用系统安装器安装的[最正确]办法(不弹出选择打开的程序)
关于这个办法的搜寻,又是只能找到一篇被到处转又没卵用的文章,我时相当气愤的。经过Google大法,最终找到正确的打开方式先来看看错误的打开方式String str = "/CanavaCancel.apk"; String fileName = Environment.getExternalStorageDirectory() + str; Intent intent
2016-02-18 13:54:53
5001
原创 [笔记]Unity5(5.1.2f1)中多边形碰撞器Polygon Collider 2D无法编辑
必须把物体的z轴置于0才可以编辑,在子级里面是0也没用,必须世界坐标是零才可以, 我的父级是z=500,于是我把物体的z改成-500就可以编辑了。Unity5 bug真是一堆堆 。。。
2015-09-01 22:43:01
7508
原创 Unity 使用C/C++ 跨平台终极解决方案(PC,iOS,Android,以及支持C/C++的平台)
PC的其实根本不用说,毕竟C#和C++交互的文章已经够多了,当然我自认为经过几次折腾后,几乎所有游戏需要到的操作我都掌握了(各种传参方法,各种坑,不懂的可以留言问,虽然基本上没人看,哈哈)废话不多说,我们主要来讲两大平台——iOS和android——与unity的native代码交互这里啰嗦一下就是去网上搜都是各种蛋疼的东西,比如如果要调用unity C#的
2015-08-22 23:19:37
23152
4
原创 C#利用反射动态加载DLL(C#)并调用其中的接口
看了很多文章都说反射怎么怎么慢啊,明显就是对于反射的理解不够。的确你可以方便的去调用一个DLL的函数(虽然我从来不觉得用函数名作为字符串去调用是方便的),就像C++也可以动态调用DLL里面的函数一样,但是用过C++的人都知道傻逼才自己去声明回调去一个一个调用里面的函数,除非你真的闲的蛋疼。但是C++有头文件可以include,这样编译器就知道这样行得通,而C#该怎么实现这样的Include?最
2015-01-22 18:39:18
11308
1
原创 C# 与 C++交互的重要细节 结构体传递 数组传递 等 stdcall
函数签名必须是 stdcall 几乎很少有资料提到这个,示例代码里面也没有 __stdcall
2014-08-08 22:35:12
2423
2
原创 Unity 显示Loading(加载)进度 对于网上流行的方法进行更正
实际上就是MOMO贴出来的方法其实是有问题的,用过的才知道。至于别的几乎不用找,根本一个抄一个,抄来抄去都是一样,没自己的东西。用过MOMO那个方法的都应该会发现了,当进度条开始显示的时候,基本上已经加载到80%了,可能也跟Unity版本有关,我的是4.3.4 。但是实际上Unity的工作原理差不多就那样,在Start里面直接开始加载的协程,实际上一开始就会阻塞,导致画面刚刚渲染出来的
2014-06-06 19:55:11
34212
1
原创 [笔记]VS2005中Debug遇到找不到msvcr80.dll的问题的解决办法
首先,这个问题在网上找了半天,什么设置MD的都是完全无用的,其实这是显而易见的,因为我在用的是MFC,又在DEBUG模式下面怎么会依赖msvcr80.dll?这个明显是Release库。于是看到有人说这是2005的BUG,我索性转到2008,于是又遇到另一个错误,说什么Runtime库错误之类,搜了一下,也是各种方法无效,最后找到个方法,忽略msvcrt.lib就可以运行了,但是一运行就各种错
2014-02-14 22:59:47
1355
原创 怀旧之使用汇编启动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
1093
原创 最简单的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
4673
原创 汇编学习笔记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
1996
原创 关于C++Release后的优化感想
最近学了点汇编,虽然写不出什么代码,但是好歹看懂一点了。于是突然想去看看C++对代码优化到什么程度。首先看debug,debug是完全没有什么优化了,除此之外还加了很多检测的过程,难怪效率那么低。后来看Release,优化得很彻底,用不到的变量,全部去掉比如 int a=0;a++;不管你对a进行了什么操作,你最终没有真正使用它,那么就会除掉,这个大概不算什么,是个人都知道的道理。
2013-11-12 23:33:08
4143
转载 优秀程序设计的18大原则
1.避免重复原则(DRY - Don’t repeat yourself)编程的最基本原则是避免重复。在程序代码中总会有很多结构体,如循环、函数、类等等。一旦你重复某个语句或概念,就会很容易形成一个抽象体。2.抽象原则(Abstraction Principle )与DRY原则相关。要记住,程序代码中每一个重要的功能,只能出现在源代码的一个位置。3.简单原则(Kee
2013-10-22 11:01:08
837
翻译 使用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
3732
原创 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
1458
原创 lua笔记 --- 一个C++调用lua函数的类的实现
这个类基本上是从LuaPlus那里弄来的,为什么不支持用LuaPlus,因为那东西我实在不知道怎么编译,能编译通过的版本的旧版本的了,而且之前的版本有BUG的存在,使用起来有阴影,不想用了,还是自己写个比较靠谱。因为感觉LuaPlus那个LuaFunction有点不好用,所以进行了一些改造。自己认为目前自己封装的这个还是比较好用的。namespace Lua_Wrapper{stru
2013-05-12 15:45:31
2351
原创 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
6668
原创 luajit笔记---编译bytecode(字节码文件)
虽说这种东西其实没多少用,不过老板是烧饼所以不会承认的,不过编译之后别人反编译也看不到变量命这种自欺欺人的心理作用还是有点用的。于是发现lua5.1编译出来的字节码luajit是不能用的,后来去官网看到编译方法,输入后却说没有这个命令,卧槽。于是继续google,找到了一个跟我一样的家伙,后面有人给出解决方案了In the LuaJIT source distribution, the
2013-05-11 12:04:16
9805
原创 luajit笔记---luajit静态库依赖顺序问题
以前从来没有意识到,依赖静态库那里的填写顺序,会对编译结果有影响。不知道这是不是luajit静态库本身的问题。结论是,依赖顺序必须是lua51.lib luajit.lib反过来编译出来的东西就无法运行,会提示缺少luajit.exe,即使放入luajit.exe会继续提示缺少lua51.dll,继续满足条件,然后直接就崩溃。静态库本身就不会依赖什么DLL,这种错误是很明显的,不知道这
2013-05-06 19:55:12
2881
原创 luajit笔记---编译成静态库以及FFI绑定宿主程序函数
本以为可以像lua一样把代码丢进去直接编译就好了,结果发现luajit有一堆汇编代码,不知道怎么处理,后来一搜索才知道luajit本身提高的批处理也可以编译成静态库,就是在后面加个static,郁闷到了。Google来Google,终于看到用FFI绑定宿主程序函数的例子,卧槽,知道真相我的眼泪都流下来!原来FFI本质是绑定导出的符号,所以说只要导出符号就可以用,吐血。#incl
2013-05-05 22:07:04
9288
原创 FreeImage加载PNG8失败的原因找到了
之前用FreeImage加载PNG8出错,而加载PNG24缺没错,一直百思不得其解,认为是FreeImage库的问题,后来发现,各大引擎都用FreeImage,而区区PNG8就对付不了,明显说不过去,这说明是我的操作方式有误。于是建立一个简单的工程,测试那种加载不成功的PNG8图片,发现一点问题都木有,那么就是环境问题了。后来给FreeImage设置了一个错误回调,打印出来的是解压错误。回想其
2013-05-05 10:27:43
2040
原创 自己尝试实现了一个lua_Reader
为什么要自己实现呢,因为脚本这东西总要加密,lua似乎没有直接从内存读取脚本这东西,似乎dostring可以,不过因为听说效率较低所以pass,而且dostring也不能读取编译后的文件。其实纯C的函数指针和C++等高级语言的抽象接口差不多,不过灵活度还是要高很多。现在发现面向对象有些东西的确是太死板了,以前觉得模板这东西很强大,现在发现这个不过是来弥补先天的不足,那还不如C的函数指针来得直接
2013-05-03 23:13:52
3624
原创 编程小技巧笔记
变量的区间限制if(a>10)a = 10;if(a<0)a = 0;//优化a = min(a,10);a = max(a,0);
2013-05-01 14:31:34
811
原创 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
2301
原创 std::map的陷阱 stack overflow
这个东西虽然看到很多测试说插入百万都没问题但是他们测试的往往是int类型做value 加入用自定义类型,特别是容器或者数组的时候,很容易堆栈溢出因为数才层数很高的时候,对堆栈消耗极大 为了方便,我是直接在std::map里面嵌套了std::list,这样就不用老是去new,省去了管理内存,结果debug没问题,release就直接堆栈溢出了。后来索性换成了stde
2013-04-20 14:07:35
1573
1
原创 Unity动态(Runtime)加载脚本
之前在群里跟人谈到脚本更新问题,于是就突然发现因为U3D对资源进行了打包,所以很难更新资源。说实在,我现在还没找到资源更新的办法,不过知道了资源可以从网络下载实时加载。后来看到有人说可以动态加载脚本,于是就去研究了。途中各种蛋疼不提也罢。其实基本原理就是使用到了C#的反射,熟悉反射的应该很简单就能解决。var fs = new FileStream(@"D:\Personal\My
2013-04-09 20:12:33
11525
即时战略DEMO中的A星算法与最近点查找
2013-10-16
Lua/LuaJit 图片处理
2013-07-23
HGE多线程渲染方案
2013-04-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人