/// <summary> /// 将怪物信息添加到缓存中,同时从appear列表中移除 /// </summary> /// <param name="player"></param> protected void AddMonsterToDisappear(WildMonsterInfo monster_info) { mAppearWildMonstersInfo.Remove(monster_info.UUID); // TODO 判断下最多可以缓存多少个player mDisappearWildMonstersInfo[monster_info.UUID] = monster_info; }
/// <summary> /// 根据id获取怪物信息 /// </summary> /// <param name="uuid"></param> /// <param name="created_when_not_exist"></param> /// <returns></returns> public WildMonsterInfo GetWildMonsterInfo(uint uuid, bool created_when_not_exist) { WildMonsterInfo info = null; if (created_when_not_exist) { // 先找缓存中的,有的话直接把缓存中的放入appear列表,并返回 if (mDisappearWildMonstersInfo.TryGetValue(uuid, out info)) { mAppearWildMonstersInfo[info.UUID] = info; mDisappearWildMonstersInfo.Remove(info.UUID); return(info); } } // 找appear中的,找不到则创建一个 if (!mAppearWildMonstersInfo.TryGetValue(uuid, out info)) { if (created_when_not_exist) { info = CreateWildMonsterInfo(uuid); mAppearWildMonstersInfo[uuid] = info; } return(info); } if (info == null) { GameDebug.LogError(string.Format("GetWildMonsterInfo({0}, {1})里找到的是null", uuid, created_when_not_exist)); } return(info); }