|
发表于 2023-3-10 11:44:42
|
显示全部楼层
主要引用树的结构,最底层的叶子节点接收到事件发生变化的时候一层层往上通知,相当于基本只需要监听最底层的红点,然后保存下来数据,减少很多数据交互量。
首先要创建所有红点名字定义文件,相当于把所有红点放到一个表文件里,这样可以方便查看,后续有添加新的红点也必须要在这边先进行注册。
RedDotNameDef = {
--背包
bag = "bag",
bag2 = "bag2",
bag3 = "bag3",
bag4 = "bag4",
--英雄
hero = "hero",
hero2 = "hero2",
}然后创建红点树文件,主要是以树状结构来对红点进行关联
RedDotDepTree = {
[RedDotNameDef.bag] = {
RedDotNameDef.bag2,
},
[RedDotNameDef.bag2] = {
RedDotNameDef.bag3,
RedDotNameDef.bag4,
},
[RedDotNameDef.hero] = {
RedDotNameDef.hero2,
},
}如上述的树状结构就创建完成了一个这样的结构

在游戏运行时适当时机注册好这个树结构
然后各自叶子系统进行事件监听当有红点变化的时候逐步往上传递 |
|