
unity,c#
文章平均质量分 80
fdyshlk
爸爸 我就是一个春天的花朵
正好长在一个春天里
因为我的骨头却是蓝色
展开
-
抛除C++旧印象(一):C#List源码剖析
项目中的好多同学都是之前写C++的,用了unity之后才开始写C#代码,虽然说转过来很轻松,但是往往会把C++的惯性思维带过来,不自觉的就认为C#跟C++一样。 项目在写一个接口的时候,需要根据index返回list中的元素,因为原先这个接口有效率问题,所以我们在改的时候也比较谨慎,有同学提出,如果用List也是不高效的,因为在index大的时候,需要从到到位进行链表查找,效率必定不尽如原创 2017-07-30 11:54:51 · 972 阅读 · 2 评论 -
抛除C++旧印象(二):C#Dictionary源码剖析
C++中STL的Map跟C#的Dictionary的使用几乎是一样的,Map使用的是红黑树来实现,所以想当然的以为C#的Dictionary也是红黑树,老兄,那可真就大错特错了。我也是有次没事去看下Dictionary的实现才发现压根就没有树的影子,原来使用散列表的方式来实现。下面我们一起来看下Dictionary的内部实现:原创 2017-07-30 21:06:44 · 1861 阅读 · 0 评论 -
c#HashSet源码解析
看到HashSet源码的时候,我惊了一下,因为我发现HashSet的内部实现跟Dictionary几乎是一模一样的,传送门:抛除C++旧印象(二):C#Dictionary源码剖析。差别仅在于HashSet没有key,只有value,所以存储的时候是用value的HashCode值进行判断。我们先来看下HashSet类开始部分的代码(经过我稍微的整理):public class Has原创 2017-08-06 12:06:45 · 3600 阅读 · 3 评论 -
unity JsonUtility泛型缺陷与Newtonsoft.Json
JsonUtility是Unity自带的数据序列化和反序列化工具类。这个类非常简单,一共就只有几个接口,序列化时使用JsonUtility.ToJson ,反序列化时使用JsonUtility.FromJson,FromJson函数支持泛型操作。JsonUtility是个轻量的Json解析工具类,轻量的好处是功能少,使用简单且能满足大部分开发需求。不过稍微复杂一些的可能就没办法了,原创 2018-01-14 16:57:19 · 5145 阅读 · 0 评论 -
自己实现unity的协程功能
本文需要有一定的C#迭代器基础知识和unity的协程相关的基础知识,如果对这两者不太了解,可以先看下笔者之前的文章:c# yield关键字解析、Unity协程(一):彻底了解yield return null 和 yield return new WaitForSeconds。好的,话不多说,我们直接开始吧:为了方便理解和标识,本例子的类采取My + unity的类名的命名方式。首先我们新建一个名...原创 2018-05-07 23:41:11 · 3059 阅读 · 0 评论 -
unity 动态导入dll与RuntimeInitializeOnLoadMethod的实现
前断时间做项目的时候,发现一个问题:动态导入的dll(即打包成exe后再放入包中的dll),unity提供的特性RuntimeInitializeOnLoadMethod标注的方法没有被调用。代码很简单,只是测试用,如下:namespace TestProject{ public class Test { [RuntimeInitializeOnLoad...原创 2018-07-28 12:40:16 · 1455 阅读 · 0 评论 -
unity 正确解压中文Zip文件
在Unity中对含有中文的Zip压缩文件解压真的是挺坑的一件事情。普通C#工程,只要目标框架在.NET Framework 4.5(含)以上版本,只要一行代码就能搞定的事:ZipFile.ExtractToDirectory("zip目录", "解压目录");unity老旧的3.5让它变得难搞,因为没了c#自带解压zip功能,只好转而求助第三方库,ICSharpCode.SharpZip...原创 2018-09-16 21:30:54 · 4543 阅读 · 1 评论