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中都有自己的数值

最后的返回内容:
