[Unity3D学习]Unity C# 的类型存储大小测试

最近在做内存优化,发现了一些问题,虽然知道了结果,但是并没有找到为什么,所以把问题给贴出来,或许哪天遇到大神能给我解惑!

发现的问题其实就是object[]  数据 比 float[] 要大,为什么要大呢?

因为是项目中遇到这个问题,一个字段存储了大量的object数据,其实这些object 都是int 或者是float.

然后我们做了一个测试,发现使用object字典存储的内存 要比使用list存储的内存大上15M,这让我们起了疑心,所以我写了一个小的实例来验证这个问题。

猜想是不是object[] 比 float[]大

阅读详细 »

[Unity3D学习]Unity C#与IOS通信

最近需要自己接一个sdk,之前都没接过,今天来看看c# 与 ios 之间是如何交互的。把代码记录下来,以后可能还会有用处。

其实他们之前的调用是使用c/c++作为桥梁,让两者之间能够互相通信。其他的就不多说了,直接上代码。

代码的使用方法,都在注视中。

阅读详细 »

[Objective-C 设计模式]单例模式

单例模式:保证一个类仅有一个实例,并提供一个访问它的全局访问点。

优点

在项目中使用方便,且节省资源,整个项目就一个实例,一般用于通用功能使用。

缺点

单例模式只有在程序关闭后才释放,在很多情况不在使用,也是一种资源占用的浪费。

阅读详细 »

[Objective-C 设计模式]迭代器模式

迭代器模式:提供一种方法顺序访问一个聚合对象中各个元素,而又不暴露该对象的内部表示。

 

优点:

1.抽象出一个迭代器类来负责遍历

2.不暴露集合的内部结构,又可让外部代码透明地访问集合内部的数据

缺点:

1.需要遍历的集合类会随着时间的增加而增加,维护起来会比较麻烦

阅读详细 »

[Objective-C 设计模式]组合模式

组合模式:将对象组合成树形结构以表示“部分-整体”的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。

优点:

1.能够将简单的具有相同行为的对象组合在一起,实现复杂的行为。

2.添加叶节点行为简单,扩张性好。

3.组合模式可以一致的使用组合结构和单个对象。

缺点:

1.如果叶节点数据太大会造成维护成本太高。

总结:需求中说体现部分与整体层次的结构时,以及你希望用户可以忽略组合对象与单个对象的不同,统一地使用组合结构中的所有对象时,就应该考虑用组合模式,组合模式适合小面积使用,如果叶节点过多的话,就要考虑其他模式,否则维护起来会越来越复杂。

阅读详细 »

[Objective-C 设计模式]备忘录模式

备忘录模式:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复原先保存的状态。

优点:能很好的封装内部状态,避免客户修改。

缺点:如果内部数据比较多的话,会造成难以维护。

阅读详细 »

[Objective-C 设计模式]适配器模式

适配器模式:将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。

阅读详细 »

[Objective-C 设计模式]状态模式

状态模式:当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。

阅读详细 »

[Objective-C 设计模式]抽象工厂模式

抽象工厂模式:提供一个创建一系列相关或者相互依赖对象的接口,而无需指定它们具体的类。

阅读详细 »

[Objective-C 设计模式]观察者模式

观察者模式:定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己。

阅读详细 »