前言
- 最近闲的要死,继续回顾一下我上一个项目的buff系统构建
- 大概逻辑是这样的,游戏的逻辑在运行过程中会抛出各种事件和询问各种属性
- 然后游戏的事件系统会询问是否有人要关注它
- 如果有,就把这个实体给缓存起来方便下次使用
图解
- 开始询问
- 根据Relation来获得关联的目标targets
- 比如说一个游戏角色的buff同时受到Game,Athlete,Status这几个实体影响,就需要同时获得这多个目标
- 根据获取的目标,获取提前缓存的订阅实体
- 在getCollection的时候会把target自己添加到Collection里面,在Collection里面会递归添加子资源
- 在执行的时候,第一遍会进行过滤,如果相关实体说自己不订阅,就会从当前集合里面移除掉它
- 等到第二次的时候,就从过滤后的集合里面访问