• unity学习(46)——服务器三次注册限制以及数据库化角色信息1--数据流程


    1.先找到服务器创建角色信息代码的位置,UserBizImpl.cs中:

    1. public PlayerModel create(string accId, string name, int job)
    2. {
    3. PlayerModel[] playerModelArray = this.list(accId);//list是个自建函数,本质通过accId来查询
    4. if (playerModelArray != null && playerModelArray.Length > 2)//每个账号下的角色信息存放在playerModelArray中
    5. return (PlayerModel) null;
    6. PlayerModel model1;
    7. HeroConstans.heros.TryGetValue(job, out model1);
    8. if (model1 == null)
    9. return (PlayerModel) null;
    10. PlayerModel model2 = new PlayerModel(model1);
    11. model2.name = name;
    12. model2.map = 2;
    13. model2.id = Guid.NewGuid().ToString();
    14. model2.point = new Vector3(-2.21, 13.83, 7.5);//出生点
    15. model2.rotation = new Vector4(0.0, 0.0, 0.0, 0.0);//旋转
    16. CacheUtil.user.put(accId, model2);
    17. return model2;
    18. }

    2.通过this.list跳转到存放所有账号所有角色的位置,UserCache.cs中:

    1. public PlayerModel[] list(string accId)
    2. {
    3. List<string> stringList;
    4. this.userPlayerIds.TryGetValue(accId, out stringList);
    5. if (stringList == null)
    6. return (PlayerModel[]) null;
    7. PlayerModel[] playerModelArray = new PlayerModel[stringList.Count];
    8. for (int index = 0; index < stringList.Count; ++index)
    9. this.players.TryGetValue(stringList[index], out playerModelArray[index]);
    10. return playerModelArray;
    11. }

    很多变量如果输出的话,很麻烦,不如下断点调一下: 

    3.创建当前账号下第一个角色时:

    最后返回的是model2,看到这里思路已经很清楚了。 

     把当前创建的角色信息返回给客户端,估计后面有点用,但不是关键的地方

    4.当创建第二个角色时: 

    count变成1了,之前应该是0。

    5.当创建第三个角色时:

    count还是1,感觉返回的内容也没啥变化

     6.当创建第四个角色时(这个时候已经有三个了),直观可见同一个账号下的每一个角色也有自己的id,

     每个list中都有自己的数值

    最后的返回内容: 

  • 相关阅读:
    十一、Filter&Listener
    栈和队列基础
    Pr:创建自己的项目模板
    记go语言椭圆曲线算法公私钥验证补充
    成都瀚网科技有限公司抖音带货可靠么
    一道桥牌明手题的思路与分析
    2022-08-04
    记一次 .Net+SqlSugar 查询超时的问题排查过程
    【Java编程进阶】标识符和关键字
    【JavaSE】接口
  • 原文地址:https://blog.csdn.net/qq_27863281/article/details/136429005