예제 #1
0
 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);
     }
 }
예제 #2
0
        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);
        }
예제 #3
0
        /// <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);
        }