自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 资源 (6)
  • 收藏
  • 关注

原创 关于Fatal Error in GC : Too Many threads

之前写的某个程序在一台机子上测试一直出现这个问题,换一台则不会出现。也查不出是什么原因。开始以为是电脑问题,后来发现在网络好的地方就不会出现,网络差的地方则经常出现。在翻代码的时候发现有一个StartCoroutine写在了Update中,其中调用了WWW类,每调用一次Update就会开一个线程调用WWW,在网络好的情况下WWW可以及时返回,不会出现过多的线程,一旦网络情况比较糟糕,这边一直在开线程

2015-06-19 17:08:40 7173

原创 关于Unity Plugins文件夹

如果Plugins文件夹中存在”Plugins/x86”和”Plugins/x86_64”这两个文件夹,则dll必须放入这两个文件夹中,否则会出现找不到dll的情况

2015-06-08 14:51:05 11557 1

原创 Unity截图的三种方式

1.最常见的一种方式IEnumerator CaputreScreen(){ yield return new WaitForEndOfFrame(); texture.ReadPixels(new Rect(0, 0, width, height), 0, 0); texture.Apply();}该方法可以截取一个矩形框内的图像,缺点是需要等待一帧结束才可以读取到图像

2015-06-04 18:34:54 1468

原创 Unity自定义定时器

自己写的一个Timer,绑定到一个prefab上,使用时直接Instantaite,要用几个就Instantiate几个,非常方便using UnityEngine;using System.Collections;public class Timer : MonoBehaviour{ private float _time; private float _lastTime;

2015-06-03 18:00:38 660

原创 VS2013下在C#中调试C++ dll

dll项目,属性-配置属性-调试-把 命令 为 调用该dll的exe工程的bin\Debug*.exe dll项目,属性-配置属性-调试-把 调试器类型 设置为 仅限本机 dll项目,属性-配置属性-常规-把输出目录设置为 调用该dll的exe工程的bin\Debug目录下 在dll项目中打好断点,然后重新生成dll,输出dll到设置的目录下exe项目,属性-调试-启用本机代码调试 exe项

2015-05-25 14:26:28 2222 2

原创 关于P/Invoke(3)

在调用dll时,我们可能会遇到需要调用像printf之类的可变参数的方法,我们可以使用__arglist关键字来传入可变参数:[DllImport("msvcrt.dll", CharSet=CharSet.Ansi,CallingConvention=CallingConvention.Cdecl)]extern static int printf(string format, __arglis

2015-05-25 11:32:38 361

原创 关于P/Invoke(2)

可以使用 __declspec(dllexport) 关键字从 DLL 导出数据、函数、类或类成员函数 当尝试导出 C++ 修饰函数名时,这种便利最明显。 由于对名称修饰没有标准规范,因此导出函数的名称在不同的编译器版本中可能有所变化。 如果使用 __declspec(dllexport),仅当解决任何命名约定更改时才必须重新编译 DLL 和依赖 .exe 文件。 若要导出函数,__declsp

2015-05-25 10:58:12 456

原创 关于P/Invoke(1)

之前封装c++dll时总是出现”对 P/Invoke 函数的调用导致堆栈不对称。原因可能是托管的 P/Invoke 签名与非托管的目标签名不匹配”的问题,后来发现原来c/c++使用的是cdecl方式调用,而c#默认使用的是stdcall的方式来调用非托管代码,所以我们在调用native c++ dll的时候需要加上CallingConvention=CallingConvention.Cdecl来指

2015-05-25 10:43:17 532

原创 Unity Texture2D缩放

Texture2D ScaleTexture(Texture2D source, int targetWidth, int targetHeight) { Texture2D result = new Texture2D(targetWidth, targetHeight, source.format, false); float incX = (1.0f /

2015-05-14 09:14:45 11105 3

原创 Unity将RenderTexture转化为Texture2D

RenderTexture和Texture2D同样继承于Texture,两者都可以和Texture之间相互转化,但是两者之间却不能简单的进行强制转换,我们可以通过以下方式将RenderTexture转化为Texture2D:int width = renderTexture.width;int height = renderTexture.height;Texture2D texture2D =

2015-04-30 16:22:57 9955

原创 c#抽象类和接口

接口中所有的方法隐含的都是抽象的。而抽象类则可以同时包含抽象和非抽象的方法。类可以实现很多个接口,但是只能继承一个抽象类类如果要实现一个接口,它必须要实现接口声明的所有方法。但是,类可以不实现抽象类声明的所有方法,当然,在这种情况下,类也必须得声明成是抽象的。

2015-04-24 13:56:47 512

原创 c#virtual,abstract,new,override

在c#中使用virtual关键字告诉子类该方法可以被覆盖,在子类中使用override进行重写。 在子类中不使用override关键字重写基类同名方法,编译器默认添加new关键字。 new关键字可以在子类中隐藏基类方法,而virtual关键字在整个继承链中覆盖掉基类方法。 使用virtual关键字的方法必须有实现,而abstract方法不能有实现且在子类中没有使用abstract就必须实现该方

2015-04-24 11:13:48 412

原创 多维数组到一维数组转化

OK, so you know how to go from the 1-dimensional case to the 2-dimensional case.A 1-D array looks like this:int [5] :+-----+-----+-----+-----+-----+| 0 | 1 | 2 | 3 | 4 || |

2015-04-03 15:10:28 507

转载 Unity使用OpenCvSharp进行人脸识别

using UnityEngine;using System.Collections;using OpenCvSharp.CPlusPlus;using OpenCvSharp;using System;public class FaceDetection : MonoBehaviour{ public int Width = 640; public int Hei

2015-01-19 17:38:15 10154 2

原创 kinect结合ngui开发

自从微软发布了kinect2.0以后,其中自带的kinect with unity sdk

2014-10-22 09:51:28 1183

原创 Unity定时器

在Unity中可以通过Invoke,InvokeRepeating来实现定时器功能Invoke("FunName",  2.0f);    //2秒后调用FunName函数Invoke//2秒后每过1秒调用一次void CancelInvoke();   //取消所有的Invokevoid CancelInvoke(string methodName);    //取消

2014-10-17 14:52:38 604

原创 Cocos2d-x 通过虚拟按键控制人物移动

玩过手机RPG的同学都知道,游戏中人物的移动一般都是通过触摸屏上的虚拟按键来实现,那么究竟是怎么实现的呢,我们来做一个简单的测试。这里并没有按照其他Blog的实现来讲解,仅仅是通过我自己的想法。为了方便起见,我并没有新建其他类,只是在新建程序的HelloWorld中来实现。头文件: cocos2d::CCSprite* player; cocos2d::CCPo

2013-04-02 21:50:38 4202

grub2基础教程

GNU GRUB(简称“GRUB”)是一个来自GNU项目的多操作系统启动程序。GRUB是多启动规范的实现,它允许用户可以在计算机内同时拥有多个操作系统,并在计算机启动时选择希望运行的操作系统。GRUB可用于选择操作系统分区上的不同内核,也可用于向这些内核传递启动参数。

2011-11-30

vim帮助手册

Vim是一个类似于Vi的文本编辑器,不过在Vi的基础上增加了很多新的特性,Vim普遍被推崇为类Vi编辑器中最好的一个,事实上真正的劲敌来自Emacs的不同变体。1999 年Emacs被选为Linuxworld文本编辑分类的优胜者,Vim屈居第二。但在2000年2月Vim赢得了Slashdot Beanie的最佳开放源代码文本编辑器大奖,又将Emacs推至二线, 总的来看, Vim和Emacs同样都是非常优秀的文本编辑器。

2011-11-29

基于ADS1.2的开发(ARM9)使用说明

ADS1.2 是一个使用方便的集成开发环境,全称是ARM Developer Suite v1.2 。它是由ARM 公司提供的专门用于ARM 相关应用开发和调试的综合性软件。在功能和易用性上比较SDT 都有提高,是一款功能强大又易于使用的开发工具。以下就我们对ADS1.2 进行一些简要的介绍。 ADS 囊括了一系列的应用,并有相关的文档和实例的支持。使用者可以用它来编写和调试各种基于ARM家族RISC处理器的应用。你可以用ADS来开发、编译、调试采用包括C、C++和ARM汇编语言编写的程序。

2011-09-19

ADS集成开发环境的使用

ARM ADS 编译环境使用手册 详细介绍了ADS的使用方法

2011-09-09

空空如也

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

TA关注的人

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