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

时间:2024-03-07 11:12:09

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

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

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

public PlayerModel[] list(string accId)
{
  List<string> stringList;
  this.userPlayerIds.TryGetValue(accId, out stringList);
  if (stringList == null)
    return (PlayerModel[]) null;
  PlayerModel[] playerModelArray = new PlayerModel[stringList.Count];
  for (int index = 0; index < stringList.Count; ++index)
    this.players.TryGetValue(stringList[index], out playerModelArray[index]);
  return playerModelArray;
}

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

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

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

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

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

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

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

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

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

 每个list中都有自己的数值

最后的返回内容: