策划要求,点击玩家详情,游戏内阵容,英雄,装备,装备上的宝石等等信息都要显示在面板上,之后还要加离线战斗功能。
由于英雄实现了ISerializeToEntity,只有SetDomain才会触发反序列化系统反序列化到英雄组件的字段上。 玩家都离线了,英雄组件还ComponentOf(typeof(Unit)),所以肯定不能SetDomain了。
所以我想直接把组件的bson字符串给客户端发过去得了,让客户端自己反序列化。
这样没问题吧?
直接读取数据库呢,做个LRU规则,读取过的玩家缓存起来
853178006 玩家给好友服发查看详情请求,好友服从缓存服获取到玩家的英雄组件,我想能不能直接把组件字符串给客户端。 这样就能偷懒了。 这些组件上都有ComponentOf(typeof(Unit)),好友服的Unit类名还不一样,所以不能AddComponent了。也就没法反序列化英雄了。
bson字符串如果内容很多long类型的话,估计效率高不起来
没看懂你的意思,可以把别人的英雄数据全部读出来,序列化成bson发给客户端,然后用bson反序列化,完全没有问题
egametang 就是又要写很多重复给客户端同步的代码。之前给自己同步的消息不能通用。
大佬,请问你是怎么做的?我也遇到类似的问题。例如map中UnitA查询UnitB的数据,将数据拉出来后还得在当前map中设置它得domain才能正确获取到UnitB组件下得数据,用完还要考虑该不该移除UnitB,很麻烦
gxh_1995 我目前是把unit加到另一个组件作为Child,然后从缓存服拉数据加到unit上,用完就销毁。