public void AddByTag(FindableData data) { foreach (var tag in data.Tags) { if (!mTagedDatas.ContainsKey(tag)) { mTagedDatas.Add(tag, new List <FindableData>()); } var contain = mTagedDatas [tag].Where(e => { return(e.Object == data.Object); }); if (contain != null) { return; } mTagedDatas [tag].Add(data); } }
public void AddByKey(FindableData data) { var key = data.SarchKey; if (key == string.Empty) { return; } var keyContained = mDatas.ContainsKey(key); if (keyContained) { string str = string.Format("The key:{0} is used by {1},{2}" , key, mDatas [key].Object, data.Object); throw new System.Exception(str); } mDatas.TrySet(key, data); }
/// <summary> /// Get named object. /// </summary> /// <param name="name"></param> /// <returns>When that named object is nothing then return null</returns> public GameObject GetNamed(string name) { FindableData data = null; var exist = mDatas.TryGetValue(name, out data); if (!exist) { return(null); } if (data == null) { return(null); } if (data.Object == null) { mDatas.Remove(name); return(null); } return(data.Object); }