ET框架学习

       作为一个转行的程序小白,压力山大呀,毕竟出来也有几年了。这个框架是前几天才接触的,后端的不懂,只能从前端Unity代码部分慢慢入手了。单看场景,就挂载了Init类和ReferenceCollector类这两个类。先从ReferenceCollector类入手。

       看这个类在inspector中的表现,猜想这个类应该有引用对象的功能。

替换01

       ReferenceCollectorData类序列化了一个名字key和object对象。就是对应上面的"LobbyCanvas"和LobbyCanvas对象。

       ReferenceCollectorDataComparer类是一个继承IComparer接口的比较器。比较的是ReferenceCollectorData类的key值,使用的序号排序的规则来进行比较。详见此文章:https://blog.csdn.net/sinat_27657511/article/details/52275327。StringComparison枚举定义了6种排序规则,其中这里使用的Ordinal规则表示进行非语言(non-linguistic)上的比较,API运行时将会对两个字符串进行byte级别的比较,因此这种比较是比较严格和准确的,并且在性能上也很好。

       ISerializationCallbackReceiver接口用于序列化字典。详见文章:https://blog.csdn.net/qq_34244317/article/details/79264336

       ReferenceCollector类的内部维护了一个List<ReferenceCollectorData>  data和一个字典Dictionary<string, Object> dict。编辑器环境下,有Add方法。Add方法中有一个SerializedObject类型的参数。SerializedObject是用于序列化编辑对象属性的类。这

05

里声明了一个SerializedObject对象,将ReferenceCollector对象作为参数。下面查找的属性"data"其实就是指的上面的List,返回一个SerializedProperty对象。后面就是一系列的添加操作。不过感觉并没有将对象添加进List中,貌似只是添加进了dataProperty中。这一点不是很明白。下面就是对应的Remove(),Sort()和Clear()方法。

       总的来说,这个类应该是用来存储对象的,以便后面进行查找使用。

猜你喜欢

转载自blog.csdn.net/Tong1993222/article/details/81701787