玩家数据

[复制链接]
1365 |4
kk 发表于 2023-4-5 20:07:15 | 显示全部楼层 |阅读模式
1680696213202.png 当玩家进入房间时候,给排行榜的数据进行赋值,在进入房间的时候是获取不到玩家数据吗?还是编码不对
回复

使用道具 举报

Othanse 发表于 2023-4-6 09:54:34 | 显示全部楼层
        // 问题1:DataCenterS内部自己会监听玩家进入事件,不需要我们手动告诉(另外,调用Action也需要去call才会执行的,就这样不调用任何函数是获取到对象而已)
        // 问题2:在服务端监听玩家进入事件,截图中使用的是编辑器内置的,不保证数据初始化完成,可以使用模块提供的onPlayerJoined来监听玩家进入,然后获取玩家信息
        DataCenterS.getInstance().onPlayerJoined.add(()=>{
            // xxx
        })
回复

使用道具 举报

kk楼主 发表于 2023-4-6 11:11:39 | 显示全部楼层
Othanse 发表于 2023-4-6 09:54
// 问题1:DataCenterS内部自己会监听玩家进入事件,不需要我们手动告诉(另外,调用Action也需要 ...

谢谢
回复

使用道具 举报

空伊伊 发表于 2023-4-6 16:13:18 | 显示全部楼层
本帖最后由 空伊伊 于 2023-4-6 16:16 编辑

image.png


补充一下,Events.addPlayerJoinedListener是玩家一进入房间就立马执行的监听,DataCenterS实际上也是通过这个接口来检测玩家是否进入的。

DataCenterS在检测到玩家进入的时候,需要先使用DataStorage相关的接口从服务器上下载对应玩家的数据,如果没有下载到,会给这个玩家创建一份默认数据,然而这个过程是异步的,需要一点点响应时间。

你直接在Events.addPlayerJoinedListener中就去取对应玩家的数据,DataCenterS是有可能还没有将这个玩家的数据初始化好的


所以需要使用DataCenterS.getInstance().onPlayerJoined,这个监听会在将玩家的数据初始化完毕之后再执行



image.png
回复

使用道具 举报

kk楼主 发表于 2023-4-6 16:14:29 | 显示全部楼层
空伊伊 发表于 2023-4-6 16:13
补充一下,Events.addPlayerJoinedListener是玩家一进入房间就立马执行的监听,DataCenterS实际上也是通 ...

谢谢大佬,真不错
回复

使用道具 举报

72小时热榜
热门版块
快速回复 返回顶部 返回列表