ConcurrentDictionary

#unity/日常积累 浅析C#中 ConcurrentDictionary的实现 简单画了一张图 (灵魂画手 →_→) 如图 ConcurrentDictionary 其中有个tables 对象主要存储,而这个 tables 是一个 很多区块的 数组 ,每个区块 又是一个node的链表 (ps: 一个node 就是一个key value 对) 具体实现如下(ps 代码摘自 ne……

协奏

委托字典

是一个字典 m_EventTable 这里是添加的 OnListenerAdding 这里是移除的 OnListenerRemoving 这里就是广播的,也就是触发事件了 Broadcast 会把对应事件类型的callback委托,触发了 会有不同传参的CallBack委托回调函数 举例说明,这里是,注册一个Show函数 而且是有一个传参的 对应的事件类型是这个: 然后,在ClickTest里面,整一个按……

协奏

定时回调系统_第三章

把相关的方法,从unity里抽象出来,实际上是把Update函数,弄一个while函数实现 可以看到,计时器类,还是时间任务列表,帧任务列表 计时器类里,更新函数,也是类似的逻辑,检测对应的列表 不过,时间上的获取,是有一个新知识点 这个double的数据,指的是现在时间 其中,计算机元年……

协奏

音效系统

这个是音效组件 实际上音效只是需要,切换、播放不同的音源,所以变量只留一个路径就好,而且它也是一个Self的事件触发 音效系统,是这个脚本 其中包含三个音效类 他们的触发条件也是基于前面不同的状态变化 具体逻辑就是替换音频组件的路径类 具体的游戏交互入口是这里 可以看到,是有倆调用 这里就是音频……

协奏

Entitas消消乐相关逻辑

球预制体实例化相关逻辑 游戏交互相关逻辑 判断颜色的逻辑和消除 条件不满足的相关处理 消除之后元素下落 消除之后元素填充 本该被消除的物体没有及时消除 特殊消除相关逻辑 计分系统 音效系统……

协奏

计分系统

这个是分数相关的组件,任意事件都可以触发 对应的,跟游戏交互的分数控制器 挂在这里 这个是对应的计分系统 这里是计分的具体业务逻辑,根据掉落实体的数量,分数增加 初始化的时候,分数清理 这里是添加分数变化的事件监听……

协奏

FirstOrDefault

#unity/日常积累 FirstOrDefault():返回序列中的第一个元素;如果序列中不包含任何元素,则返回默认值,其中int类型的默认值是0,string类型的默认值是空 1 list.FirstOrDefault(x => x >30);//返回满足条件的第一个元素,括号内为筛选条件 First():返回序列的第一个元……

协奏

List的toArray()方法

#unity/日常积累 在C#的List集合操作中,可以使用List集合自带的ToArray方法来将List集合转换为对应的Array数组元素。ToArray方法的签名为T[] ToArray(),存在于命名空间System.Collections.Generic下,属于Linq的扩……

协奏

本该被消除的物体没有及时消除

这里边会有一个时序的问题,例如这里 实际上,是已经消除和解除绑定 但是实际上,可能会没触发掉落等相关逻辑 最简单的处理办法,就是整一个销毁相关的系统,然后在更新函数里,去遍历检测 而且需要注意的是,这里继承的是ICleanupSystem清理系统,而不是事件系统,因为事件系统会存在执行顺……

协奏

条件不满足的相关处理

如果条件不足,移动的物体会交换和回到,原来的位置,所以需要整一个,再次交换的反应系统 可以看到,它的触发条件,是不满足切换的条件情况下,才会触发 有时候响应系统会无法触发,解决办法是,让它带一个传参就好了 然后,也依然是触发这个交互系统的相关逻辑……

协奏