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

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

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

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

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

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

阅读详细 »

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

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

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

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

阅读详细 »

[Unity3D学习]Unity代码热更新 源码下载

之前的一篇文章《[Unity3D学习]Unity代码热更新解决方案测试结果总结》只是说了一下方案的流程,今天刚好有时间,又再看了一下热更新这一块!就直接将代码分享出来。代码热更新的核心基本实现,只是需要处理一些依赖等等。

资源都是放在我blog的服务器上,提供给大家测试。

时间有点晚了1:30,直接贴代码睡觉了!(最近一个月拼死的加班,实在太累。)

阅读详细 »

Centos环境安装CollabNetSubversionEdge详细步骤

Linux小白,部署了4天才部署成功,一直csvn 无法启动,让我头疼了很久,最终各种Google 看了N多文章,无数次的试验(系统还原了N次 = =)终于是部署成功了。 成就感就不用说了,很开心啊。现在再从来安装一次,并且把步骤记录下来,以后方便自己从安装。

阅读详细 »

[Unity3D学习]NGUI UILabel 图文混排扩展

之前发过一个图文混排的文章《[Unity3D学习]NGUI UILabel 图文混排》、一直感觉那样比较消耗。又由于公司项目也需要做图文混排,就想了另一种图文混排思路,从性能来说比之前的思路要好很多,不过也有弊端,现在这种解决方案,做动态表情不太适应。不过我想的是,手机游戏对聊天功能其实已经比较弱化了,所以个人认为聊天不需要做得太复杂,一切从简就好。

阅读详细 »

[Unity3D学习]NGUI UILabel 底层实现原理

这个代码放在草稿箱已经N久了,一直没时间来写写发布,因为我想从底层去实现一个图文混排的功能,所以就第一步先尝试去了解一下NGUI UILabel的底层实现方式。终于剥离了大部分UILabel的代码,找到了最终的动态文字的具体实现方式,具体的代码就贴在下面了,我就不详细叙述了,我这人一直以来都不太喜欢敲文字,文笔太烂,我更喜欢用代码说话。

大概都实现思路:通过动态字体库获取文字都顶点、UV、颜色信息,然后通过Mesh显示出来。具体的请看代码吧。

通过对UILabel都学习,图文混排都实现可以通过我们处理顶点来解决,其实新方案都图文混排功能我已经放在草稿里了,等有时间再整理发布。
阅读详细 »

[小技巧]Visual Studio 常用快捷键

 

在工作中,快捷键能够帮助自己提高很多效率。

所以一定要尽量多记一些好用都快捷键

下面都内容收集于互联网

阅读详细 »

[Unity学习]Vector3.Distance()函数与自己计算距离的效率对比

下面是我的测试代码,以及执行输出结果。

 

可以看出,上面的三种计算方式,Unity自己的API执行效率是最慢的,不过这个计算量比较大,如果计算量比较小的情况下,这点效率其实可以忽略,还有就是如果是自己计算,很多情况下,Y轴的数据可以不包含在计算中,这样执行效率能够提升更多。

[Unity3D学习]获得两点之间连续坐标,向量加法、减法、乘法的运用。

这是一个很小的知识点,不过我觉得可以记录下来,就算是在大都项目都是这些小小的知识点堆积而来,之前我用这个小知识点获取了,两点之间都一系列点,今天当我想做一个移动的时候,发现这个知识点也能做这方面都事情,所以我觉得把它记录下来,虽然很简单,但是用处并不简单。

阅读详细 »

[Unity3D学习]Mesh创建三角形、长方形

今天看了下如何创建长方形和三角形,以前只是知道能够使用同一个Material的情况下就使用同一个,能减少Draw Calls ,今天自己也测试了一下,加深都理解。

我目前理解是为了降低Draw Calls 应当尽然重用  Materail,这中情况下,不管你创建多少个三角形,使用相同的Materail,那么Draw Calls只会+1,但是这种重用很有局限性,如果你改变Materail都颜色,那么所有都三角形都会改变颜色。从这点就应该大致知道为什么Draw Calls只会+1。

进而我尝试了创建多个三角形,每个三角形都实例化新都Materail,这种情况下,测试结果是在可视范围内,有多少个三角形,就会有多少Draw Calls 。这样就能清楚都知道Materail是增加Draw Calls都主要因素,所以以后得注意这一点。

下面贴出代码,创建三角形,长方形都代码以后应该能用到。
阅读详细 »