近日由于在U3D项目中要使用到数据传递(C++ DLL的数据传递给U3D中的C#),其中涉及到需要使用C#的指针.直接编译会出现以下错误Unsafe code requires the 'unsafe' command line option to be specified. 下面是我总结的解决办法: 1.去除MONO编辑器中的Unsafe错误,Assembly-CSharp鼠标右键找到Options->Build->General .Allow 'unsafe' code 打钩.这个只能去除…
当一个函数并非一个对象的忏悔时,它会被当作一个函数来调用. 此时,函数中的 this 指针被绑定到了全局对象. 后果:方法不能利用内部函数来帮助工作,由于 this 被绑定了错误的值,将无法共享该方法对对象的访问权. 解决办法:在方法内定义一个变量并赋值为 this.…
初次结识 this 指针,是在学 <<C++ Primer Plus>>这本书的时候(这本书勉强读了一二遍,之后转学 html+css+js了,不过这是后话). 依稀记得书中举了个例子,就是说两个对象在调用记法进行比较时,怎样来指代对象自身呢?在详细罗列了一系列问题后,引入了 this 指针. 有天晚上,vbs群里突然一哥们发了段代码,说不是太理解 this 指针. 我就发了一大段文字谈了自己的理解,具体咋说的忘记了,只记得这哥们说看来自己也得学下 c++才行. javascrip…
先说一下我遇到的问题,我弄了一个对象池管理多个对象,对象池绑定在一个GameObject上,每个对象在OnBecameInvisible时会进行回收(即移出屏幕就回收),但是当场景切换或停止运行程序时场景中如果还有待回收的对象,就会报错,报错显示的信息为,我的对象池GameObject已经被销毁了云云,因为回收的对象我会把他们作为绑定了对象池的GameObject的子级来方便管理. 所以唯一的可能就是脚本方法调用顺序不可控,即不同GameObject的OnBecameInvisible在其它Ga…
Unity中的coroutine是通过yield expression;来实现的.官方脚本中到处会看到这样的代码. 疑问: yield是什么? Coroutine是什么? unity的coroutine程序执行流程怎么那么奇怪? unity中的coroutine原理是什么,怎么实现的? 使用unity的coroutine需要注意什么问题? 一.yield的在几种语言中的程序执行特性: Lua中的yield是使得协同函数运行->挂起并且传递参数给resume.resume使得协同函数挂起->运行…
首先要明白,这三种说的混用是指文件级别的混用,就是说一个文件是由一种语言写的.而不是说你这一个文件可以混用这三种语言,注意这是不允许的. 第二要明白,在unity3d中为什么可以使用三种语言混合开发?这个问题简单说一下,我举一个例,如英语和中文,如果你不懂英文,你就需要别人将英文翻译成中文,你才能听懂.同样你懂英文,不懂中文,你就需要把中文翻译成英文.如果世界就二种语言,那就太好了,很可措,不是,如果你听我们的老大哥俄文怎么办,找人将俄文翻译成中文,英文,同时将英文,中文翻译成俄文,这工作量还可…
本文主要讲实现过程的一些坑. 先说下要实现的目标,主要功能在UE4/Unity中都要用,能同时捕获多个摄像头,并且捕获的图片要达到1080p25桢上,并且需要经过复杂的图片处理后丢给UE4/Unity3D,并且要CPU要占用小,以便在UE4/Unity有大的余地做更多的事件. 市面上一般1080p后的摄像头,在20桢以上都不会提供原生的rgba32数据,一般常见的有压缩格式mjpg,末压缩的一般是nv12,牛点的会提供yuv2,正常的实现会把内存流里的数据提供给对应的UE4/Unity3D,然后…
一.智能指针学习总结 1.一个非const引用无法指向一个临时变量,但是const引用是可以的! 2.C++中的delete和C中的free()类似,delete NULL不会报"double free"的oops. int main(int argc, char **argv) { int i; int *p = new int; delete p; p = NULL; delete p; ; } 3.智能指针的实现思想:使用可以自动销毁的局部对象来描述不可以自动销毁的位于堆空间中的…
在unity3d中导入模型,经常会遇到模型的轴向与unity中默认的轴向不符合的情况. 网上有很多解决办法都是说在3dmax中导出模型时修改模型的轴向,那么我接下来讲的就是如何在unity里面修改模型的轴向.(以网上下载的坦克模型为例) 步骤1:将模型导入到unity中,至于如何赋材质和贴图就不用讲了吧. 导入的坦克模型与创建的unity自带模型cube轴向对比,发现轴向是统一的,但是模型的本身的朝向不对,相差了90度. 步骤2:创建一个空物体,GameObject—>Create Empty.…
指针C#unsafefixed 目录(?)[-] 概述 unsafe fixed 1.1 概述 unsafe关键字表示不安全上下文,该上下文是任何涉及指针的操作所必需的.可以在属性.方法.类的声明中使用unsafe修饰符,此时类型或成员的整个正文范围均被视为不安全上下文. fixed语句用于禁止垃圾回收器重定位可移动的变量,Fixed还可用于创建固定大小的缓冲区,fixed 语句只能出现在不安全的上下文中. 但在C#中使用指针时只能操作struct,不能操作class,不能在泛型类型代码中使用未…
本文太乱,推荐frankjfwang的:全面解析Coroutine技术 Unity中的coroutine是通过yield expression;来实现的.官方脚本中到处会看到这种代码. 疑问: yield是什么? Coroutine是什么? unity的coroutine程序运行流程怎么那么奇怪? unity中的coroutine原理是什么,怎么实现的? 使用unity的coroutine须要注意什么问题? 一.yield的在几种语言中的程序运行特性: Lua中的yield是使得协同函数执行->…
这是java高并发系列第22篇文章,文章基于jdk1.8环境. 本文主要内容 基本介绍. 通过反射获取Unsafe实例 Unsafe中的CAS操作 Unsafe中原子操作相关方法介绍 Unsafe中线程调度相关方法 park和unpark示例 Unsafe锁示例 Unsafe中保证变量的可见性 Unsafe中Class相关方法 示例:staticFieldOffset.staticFieldBase.staticFieldBase 示例:shouldBeInitialized.ensureCla…
想仿命令行,所以定义了一个类,让一个String 对应一个 function,将两者输入list容器. 类中定义了 QString commandStr; void (MainWindow::*commandFun)(void);一个QString ,一个指向MainWindow类成员函数的指针.但是没想到在类中使用函数指针这么复杂. 一般情况,我们使用函数指针声明和引用都很简单明了.但是在类中就不一样了.最后的成功的形式如下: class command_type { public: comm…
向量是2D.3D数学研究的标准工具,在3D游戏中向量是基础.因此掌握好向量的一些基本概念以及属性和常用运算方法就显得尤为重要.在本篇博客中,马三就来和大家一起回顾和学习一下Unity3D中那些常用的3D数学知识. 一.向量概念及基本定义 1.向量的数学定义 向量就是一个数字列表,对于程序员来说一个向量就是一个数组. 向量的维度就是向量包含的"数"的数目,向量可以有任意正数维,标量可以被认为是一维向量. 书写向量时,用方括号将一列数括起来,如[1,2,3] 水平书写的向量叫行向量 垂直书…
Unity3D中可中途释放的单例 使用静态类,静态变量的坏处是从程序加载后就一直占用内存,想要释放比较麻烦,可是之前使用的单例,没有提供释放的方法,那是不是也同静态的一样直到程序结束菜释放?那单例的好处是什么? 所以此处在单例中加入了可释放的方法来方便释放单例. 用途是: 用此单例管理场景物体时,在不切换场景的前提下释放掉该单例以及挂在单例游戏物体下的子物体 using UnityEngine; public abstract class SingleBhv<T> : IMono where…
图文详解Unity3D中Material的Tiling和Offset是怎么回事 Tiling和Offset概述 Tiling表示UV坐标的缩放倍数,Offset表示UV坐标的起始位置. 这样说当然是隔靴搔痒. 下面用*.3ds文件作为模型,介绍Tiling和Offset到底是怎么回事. 3DS格式解析 比如我有这样一个tank_player.3ds模型.右侧的'select'处的图片就是贴图. *.3ds文件最基本的内容包括顶点列表Vertices.贴图坐标列表UVs.面列表Faces.其中Ve…
  刚体(Rigidbody)的官方(摘自Unity3d的官方指导书<Unity4.x从入门到精通>)解释如下: Rigidbody(刚体)组件可使游戏对象在物理系统的控制下来运动,刚体可接受外力与扭矩力用来保证游戏对象像在真实世界中那样进行运动.任何游戏对象只有添加了刚体组件才能受到重力的影响,通过脚本为游戏对象添加的作用力以及通过NVIDIA物理引擎与其他的游戏对象发生互动的运算都需要游戏对象添加了刚体组件. 个人理解就是刚体是用来模拟物体受到一个力作用时候的表现,这个从刚体中的参数就可以…
在osx 10.11之前cocopods问题不多,但是升级到11之后的版本,之前的cocopods大多用不了,需要重新安装,对于我这种使用测试版系统的技术狂来说,每次都需要重新安装很多东西, 当然,cocopods也避免不了安装很多次了. 对于新手来说,使用cocopods开发,还是节省了相当多的开发时间,以下便是cocopods安装和安装过程中遇到的问题及解决办法: 最新更新:2016年7月25日,新电脑新系统测试安装! 1.cocopods 安装:http://www.cnblogs.com…
Unity3D中Update()与FixedUpdate()的区别是什么呢?从字面上理解,它们都是在更新时会被调用,并且会循环的调用.但是Update会在每次渲染新的一帧时,被调用.而FixedUpdate会在每个固定的时间间隔被调用,那么要是Update 和FixedUpdate的时间间隔一样,是不是就一样呢?答案是不一定,因为Update受当前渲染的物体,更确切的说是三角形的数量影响,有时快有时慢,帧率会变化,update被调用的时间间隔就发生变化.但是FixedUpdate则不受帧率的变化…
C++中引用与指针的区别(详细介绍) C++中的引用与指针的区别   指向不同类型的指针的区别在于指针类型可以知道编译器解释某个特定地址(指针指向的地址)中的内存内容及大小,而void*指针则只表示一个内存地址,编译器不能通过该指针所指向对象的类型和大小,因此想要通过void*指针操作对象必须进行类型转化.       ★ 相同点:       1. 都是地址的概念:        指针指向一块内存,它的内容是所指内存的地址:        引用是某块内存的别名.       ★ 区别:    …
delphi函数指针 只有@@p才代表了函数指针本身的地址   assigned(p) 判断是否为空 或者用 @p=nil 来判断函数指针是不是为空 Delphi中的函数指针实际上就是指针,只是在使用的时候有些不同 函数指针要先定义一个函数类型,比如 type TTestProc = procedure of object; 这是一个最简单的函数类型,没有参数,也没有返回值,并且要求是类的成员函数 类的成员函数其实就代表了调用的时候参数的不同,因为类的成员函数隐含着一个对象参数,而不是显式写明,…
通过查找资料,Unity3D中C#和js要相互调用彼此的方法,js文件必须放在"Standard Assets". "Pro Standard Assets" 和 "Plugins"这三个文件夹中的任意一个. 在Scripts文件夹新建一个C#脚本 csTest : public class csTest : MonoBehaviour { void Start () { jsTest js1 = gameObject.GetComponent&…
1.首先下载opencv2.4.10,解压缩后放在合适的地方,然后根据自己的电脑(32位或64位)选择X86或X64,我的是32位,将“opencv存放路径\build\x86\vc12\bin”加入到系统的path环境变量中. 2.下载opencvsharp,它是一个给.net 框架使用的opencv卷绕(wrapper of OpenCV for .NET Framework),它不仅支持.net 框架,也支持.net 框架的另一个开源跨平台实现mono.Unity3D中的CS脚本的执行就是…
在unity3d中,用四元数来表示旋转,四元数英文名叫quaternion . 比如 transform.rotation 就是一个四元数,其由四个部分组成 Quaternion = (xi + yj + zk + w ) = (x,y,z,w) 1.  http://en.wikipedia.org/wiki/Quaternion  有四元数的定义     2.  http://en.wikipedia.org/wiki/Quaternions_%26_spatial_rotation   有…
http://blog.csdn.net/yupu56/article/details/50441151 Unity中是用int32来表示32个Layer层.int32表示二进制一共有32位(0-31).在Unity中可编辑的Layer如下图所示:   在Unity中每个GameObject都有Layer属性,默认的Layer都是Default.在Unity中可编辑的Layer共有24个(8-31层),官方已使用的是0-7层,默认不可编辑! LayerMask实际上是一个位码操作,在Unity3…
关于OC中对象与指针的思考 1. 创建对象: OC中可通过代码Person *p = [[Person alloc] init];创建了一个对象p.该过程中内存情况为: 在当前线程的栈(默认1M)中,存在一个(Person *)类型的变量p,因为C语言中前面带*的变量都是指针变量,故也可理解为栈中有一个Person数据类型的指针变量p(p是指针,p不光自己有地址,它4B大小的空间中存储着别的变量的地址). 同时在ios系统管理的堆中(所有app共享)通过alloc分配了一块能装下Person数据…
数组的内部指针是数组内部的组织机制,指向一个数组中的某个元素.默认是指向数组中第一个元素通过移动或改变指针的位置,可以访问数组中的任意元素.对于数组指针的控制PHP提供了以下几个内建函数可以利用. ★current():取得目前指针位置的内容资料. ★key():读取目前指针所指向资料的索引值(键值). ★next():将数组中的内部指针移动到下一个单元. ★prev():将数组的内部指针倒回一位. ★end():将数组的内部指针指向最后一个元素. ★reset():将目前指针无条件移至第一个索…
使用环境 unity3D 5 pro vuforia 4 ios 8.1(6.1) xcode 6.1(6.2) 1.新建unity3d工程,添加vuforia 4.0的工程包 Hierarchy中 删除原有camera 添加ARCamera 添加ImageTarget 2.在vuforia网站申请key license以及上传自己的需要识别的图片.成功后下载图片包,并添加进unity3D工程.设置工程 成功在ARCamera中 Inspector - App License Key添加key…
因工作原因,需要导入格子数为1200x1200的Tiled地图文件(*.tmx)到Unity3d中显示出来.尝试过一些其它插件,后面发现X-UniTMX是比较好用的. X-UniTMXhttp://forum.unity3d.com/threads/released-x-unitmx-a-tiled-map-tmx-importer-for-unity3d.199895/ docs of X-UniTMXhttp://chaoseiro.bitbucket.org/docs/X-UniTMX/i…
深入认识JavaScript 中的this指针this指针是面向对象程序设计中的一项重要概念,它表示当前运行的对象.在实现对象的方法时,可以使用this指针来获得该对象自身的引用.和传统意义的面向对象的语言不同,JavaScript 中的this 指针是一个动态的变量,一个方法内的this指针并不是始终指向定义该方法的对象的,在上一节讲函数的apply和call方法时已经有过这样的例子.为了方便大家理解,再来看下面的例子: <script language="JavaScript"…