经验
阿高
只是个喜欢拿技术去炫耀的家伙
展开
-
unity3d 中让JS访问C#脚本的方法
由于是完全不同的两种语言,所以“语言不通”也是很正常的事情。但最终编译后他们都是一样的,所以虽然做不到相互访问(虽然不知道访问这个说法对不对不过这种细节就不要在意了),但是单向访问还是没问题的。网上很多中说法,官方其实帮助文档也有说了,不过是全英文的,国内也有翻译,不过那个质量就不评论了。然后进入正题:1、把C#脚本都放到Standard Assets文件夹里,如果没有原创 2012-12-15 21:30:23 · 2904 阅读 · 2 评论 -
关于C++Release后的优化感想
最近学了点汇编,虽然写不出什么代码,但是好歹看懂一点了。于是突然想去看看C++对代码优化到什么程度。首先看debug,debug是完全没有什么优化了,除此之外还加了很多检测的过程,难怪效率那么低。后来看Release,优化得很彻底,用不到的变量,全部去掉比如 int a=0;a++;不管你对a进行了什么操作,你最终没有真正使用它,那么就会除掉,这个大概不算什么,是个人都知道的道理。原创 2013-11-12 23:33:08 · 4097 阅读 · 0 评论 -
最简单的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 · 4612 阅读 · 0 评论 -
[笔记]VS2005中Debug遇到找不到msvcr80.dll的问题的解决办法
首先,这个问题在网上找了半天,什么设置MD的都是完全无用的,其实这是显而易见的,因为我在用的是MFC,又在DEBUG模式下面怎么会依赖msvcr80.dll?这个明显是Release库。于是看到有人说这是2005的BUG,我索性转到2008,于是又遇到另一个错误,说什么Runtime库错误之类,搜了一下,也是各种方法无效,最后找到个方法,忽略msvcrt.lib就可以运行了,但是一运行就各种错原创 2014-02-14 22:59:47 · 1336 阅读 · 1 评论 -
Unity 显示Loading(加载)进度 对于网上流行的方法进行更正
实际上就是MOMO贴出来的方法其实是有问题的,用过的才知道。至于别的几乎不用找,根本一个抄一个,抄来抄去都是一样,没自己的东西。用过MOMO那个方法的都应该会发现了,当进度条开始显示的时候,基本上已经加载到80%了,可能也跟Unity版本有关,我的是4.3.4 。但是实际上Unity的工作原理差不多就那样,在Start里面直接开始加载的协程,实际上一开始就会阻塞,导致画面刚刚渲染出来的原创 2014-06-06 19:55:11 · 34110 阅读 · 5 评论 -
Unity用C#DLL拓展
虽然了解C#的都知道可以这样了,但是我是刚知道的,主要是最近知道了HOTween这个原创 2014-05-27 15:45:14 · 1909 阅读 · 0 评论 -
Unity的吐血巨坑之处 --- 发布版本和编辑器的纹理显示不一致
缓存。编辑器的缓存和正式发布的shh原创 2014-07-13 16:28:14 · 5343 阅读 · 0 评论 -
Uniy开发笔记&注意事项
SendMessage会长同一帧调用Init原创 2014-05-24 00:54:24 · 1762 阅读 · 2 评论 -
[uLua]关于ulua打包到安卓后无法加载Global的简易解决方法
在这里我想吐槽ulua自己网站上的(非官方)回答,那根本不能叫回答,说什么熟悉打包的人都会知道,我只想说既然知道为何不顺便科普一下或者拿出解决方案。下面开始唧唧歪歪,不像麻烦的直接看这里 http://pan.baidu.com/s/1kTP9sTD 使用前记得先gen lua wrap file实际上熟悉Unity的人确实会知道是怎么回事,但是就算知道解决起来不简原创 2016-02-24 16:47:53 · 2721 阅读 · 0 评论 -
[Unity]Android(安卓)代码安卓APK时,使用系统安装器安装的[最正确]办法(不弹出选择打开的程序)
关于这个办法的搜寻,又是只能找到一篇被到处转又没卵用的文章,我时相当气愤的。经过Google大法,最终找到正确的打开方式先来看看错误的打开方式String str = "/CanavaCancel.apk"; String fileName = Environment.getExternalStorageDirectory() + str; Intent intent原创 2016-02-18 13:54:53 · 4949 阅读 · 7 评论 -
[Unity]关于Unity5.5以及5.4.x中的UGUI在安卓中出现Image不显示的BUG的解决办法
使用Instantiate创建UGUI的元件,就有可能会出现看不到的情况,这种看不到不只是看不到,连事件本身也是无法接收,如果调试会发现物体是在场景中存在的。如果Canvas设置成overlay就不会有这个问题,但是这个不是解决办法,因为总有需要设置摄像机的时候。其实目前最简单的办法就是Instantiate后设置gameObject.SetActive(false)再设置原创 2016-12-27 14:05:21 · 3010 阅读 · 0 评论 -
汇编学习笔记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 · 1946 阅读 · 0 评论 -
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 · 6604 阅读 · 0 评论 -
luajit笔记---编译bytecode(字节码文件)
虽说这种东西其实没多少用,不过老板是烧饼所以不会承认的,不过编译之后别人反编译也看不到变量命这种自欺欺人的心理作用还是有点用的。于是发现lua5.1编译出来的字节码luajit是不能用的,后来去官网看到编译方法,输入后却说没有这个命令,卧槽。于是继续google,找到了一个跟我一样的家伙,后面有人给出解决方案了In the LuaJIT source distribution, the原创 2013-05-11 12:04:16 · 9726 阅读 · 3 评论 -
Unity3D一些优化经验
转自http://www.cnblogs.com/oldman/articles/2400533.html模型的优化。 现在的图形显卡可以很好的支持很多的多边形,但是他们他们还是有一些瓶颈的。所以如果你有一个有100个三角形的MESH,它渲染起来所需要花费的运算跟1500个面数的物体是没有多大差别的。因此最佳的渲染设置时每个模型大约1500-4000个三角面。 所以再次重复,转载 2012-12-26 11:13:58 · 1305 阅读 · 0 评论 -
unity给自己的模型加上镜面效果
首先着色器来自这里:http://game.ceeger.com/forum/read.php?tid=3162没有账号的童鞋可以到这里下载这个着色器和脚本:http://pan.baidu.com/share/link?shareid=149713&uk=3087344852具体使用方法看上面的发的地址。如果你已经开始使用了这个着色器,就会发现一个严重的问题,原创 2012-12-26 11:39:47 · 10135 阅读 · 0 评论 -
【Unity】窗口失去焦点后继续游戏处理
原文:http://miaoshuanghe.blog.163.com/blog/static/14013047620114181452144/概要Unity的默认项目设定是”只在窗口被聚焦时进行游戏处理“。失去焦点时处理停止。 这个设置对于单机游戏没什么影响,但在调试多窗口的在线游戏时相当不方便。可以通过如下设定让所有的窗口失去焦点后继续游戏处理。方法转载 2012-12-27 15:09:33 · 14172 阅读 · 0 评论 -
基于Unity行为树设计与实现的尝试
查阅了一些行为树资料,目前最主要是参考了这篇文章,看完后感觉行为树实乃强大,绝对是替代状态机的不二之选。但从理论看起来很简单的行为树,真正着手起来却发现很多细节无从下手。总结起来,就是:1、行为树只是单纯的一棵决策树,还是决策+控制树。为了防止不必要的麻烦,我目前设计成单纯的决策树。2、什么时候执行行为树的问题,也就是行为树的Tick问题,是在条件变化的时候执行一次,还是只要对原创 2013-04-02 15:32:37 · 30935 阅读 · 13 评论 -
Unity动态(Runtime)加载脚本
之前在群里跟人谈到脚本更新问题,于是就突然发现因为U3D对资源进行了打包,所以很难更新资源。说实在,我现在还没找到资源更新的办法,不过知道了资源可以从网络下载实时加载。后来看到有人说可以动态加载脚本,于是就去研究了。途中各种蛋疼不提也罢。其实基本原理就是使用到了C#的反射,熟悉反射的应该很简单就能解决。var fs = new FileStream(@"D:\Personal\My原创 2013-04-09 20:12:33 · 11430 阅读 · 0 评论 -
编程小技巧笔记
变量的区间限制if(a>10)a = 10;if(a<0)a = 0;//优化a = min(a,10);a = max(a,0);原创 2013-05-01 14:31:34 · 782 阅读 · 0 评论 -
自己尝试实现了一个lua_Reader
为什么要自己实现呢,因为脚本这东西总要加密,lua似乎没有直接从内存读取脚本这东西,似乎dostring可以,不过因为听说效率较低所以pass,而且dostring也不能读取编译后的文件。其实纯C的函数指针和C++等高级语言的抽象接口差不多,不过灵活度还是要高很多。现在发现面向对象有些东西的确是太死板了,以前觉得模板这东西很强大,现在发现这个不过是来弥补先天的不足,那还不如C的函数指针来得直接原创 2013-05-03 23:13:52 · 3553 阅读 · 0 评论 -
FreeImage加载PNG8失败的原因找到了
之前用FreeImage加载PNG8出错,而加载PNG24缺没错,一直百思不得其解,认为是FreeImage库的问题,后来发现,各大引擎都用FreeImage,而区区PNG8就对付不了,明显说不过去,这说明是我的操作方式有误。于是建立一个简单的工程,测试那种加载不成功的PNG8图片,发现一点问题都木有,那么就是环境问题了。后来给FreeImage设置了一个错误回调,打印出来的是解压错误。回想其原创 2013-05-05 10:27:43 · 1996 阅读 · 0 评论 -
luajit笔记---luajit静态库依赖顺序问题
以前从来没有意识到,依赖静态库那里的填写顺序,会对编译结果有影响。不知道这是不是luajit静态库本身的问题。结论是,依赖顺序必须是lua51.lib luajit.lib反过来编译出来的东西就无法运行,会提示缺少luajit.exe,即使放入luajit.exe会继续提示缺少lua51.dll,继续满足条件,然后直接就崩溃。静态库本身就不会依赖什么DLL,这种错误是很明显的,不知道这原创 2013-05-06 19:55:12 · 2847 阅读 · 0 评论 -
[lua/unity/cocos2dx]关于云风pbc不支持int64的解决办法
其实这个很简单,因为源码都有,改改就好,但是估计有些人很担心改了之后出现各种问题解决不了,我通常是先改,出问题再说,哈哈。不过其实去看看源码,云风的代码还是写的很清晰的以上是废话找到pbc-lua.c搜索case PBC_INT64会发现这里对于int64的处理直接处理成了lua_Number,那么这里就可以根据个人需求来修改了。不过看pbc其他地方的处理,会发现其他地方通原创 2017-03-03 16:41:48 · 3926 阅读 · 0 评论