public void LoadDBData(List <DBBaseTransact> data)
 {
     Data.Clear();
     foreach (var item in data)
     {
         if (!Data.ContainsKey(item.Type))
         {
             Data[item.Type] = new Dictionary <string, BaseTransact <TUnit> >();
         }
         BaseTransact <TUnit> transact = new BaseTransact <TUnit>(item.Type, GetEntity <TUnit>(item.Self), GetEntity <TUnit>(item.Target), item.Value);
         transact.Time.Reset(item.CD);
         Data[item.Type].Add(item.TDID, transact);
     }
 }
        protected virtual void AddTransact(string type, TUnit self, TUnit target, float val, int cd)
        {
            if (!Data.ContainsKey(type))
            {
                Data[type] = new Dictionary <string, BaseTransact <TUnit> >();
            }
            string key = self.TDID + target.TDID;
            BaseTransact <TUnit> data = new BaseTransact <TUnit>(type, self, target, val);

            data.Time.Reset(cd);
            if (Data[type].ContainsKey(key))
            {
                Data[type][key] = data;
            }
            else
            {
                Data[type].Add(key, data);
            }
            Callback_OnTransactChange?.Invoke(self, target);
        }