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中都有自己的數值
最后的返回內容:?