public void Recycle(BaseMessageBox item, object obj, System.Action <BaseMessageBox> action = null)
 {
     if (item == null)
     {
         return;
     }
     MessageBoxResquest.MessageType boxType = (MessageBoxResquest.MessageType)obj;
     if (m_AllTypeBoxPool.ContainsKey(boxType) == false)
     {
         Debug.LogError(" Recycle   UnIdentify Type :" + boxType);
         return;
     }
     if (MaxCount == 0 || m_AllTypeBoxPool[boxType].Count < MaxCount)
     {
         if (action != null)
         {
             action(item);
         }
         BaseObjectPool.PushPoolItem(PoolType.MsgBox, item.gameObject);
         item.gameObject.SetActive(false);
         m_AllTypeBoxPool[boxType].Push(item);
     }
     else
     {
         GameObject.DestroyImmediate(item.gameObject);
     }
 }