public void AddAttributeGrid(AttributeRewardGridData ad, int gridID = -1)
    {
        AssetCacheMgr.GetUIInstance("AttributeRewardGrid.prefab", (prefab, id, go) =>
        {
            //for (int i = 0; i < m_listAttributeGrid.Count; ++i)
            //{
            //    if (m_listAttributeGrid[i].Id == gridID)
            //    {
            //        AssetCacheMgr.ReleaseInstance((GameObject)go);
            //        return;
            //    }
            //}
            GameObject obj = (GameObject)go;
            //AttributeRewardGrid ag = obj.GetComponentsInChildren<AttributeRewardGrid>(true)[0];
            AttributeRewardGrid ag = obj.AddComponent <AttributeRewardGrid>();

            obj.name = "AttributeRewardGrid" + m_listAttributeGridGameObject.Count;
            obj.transform.Find("AttributeRewardShareBtn").name = "AttributeRewardShareBtn" + m_listAttributeGridGameObject.Count;
            string btnName = "AttributeRewardShareBtn" + m_listAttributeGridGameObject.Count;

            Debug.Log("AddAttributeGrid Process == " + ad.ProcessStatus);

            if (gridID == -1)
            {
                ag.Id = m_listAttributeGridGameObject.Count;
            }
            else
            {
                ag.Id = gridID;
            }

            obj.transform.parent        = m_goAttributeGridList.transform;
            obj.transform.localPosition = new Vector3(0, m_listAttributeGridGameObject.Count * -ATTRIBUTEGRIDHEIGHT, 0);
            obj.transform.localScale    = new Vector3(1, 1, 1);

            m_listAttributeGrid.Add(ag);
            m_listAttributeGridGameObject.Add(obj);

            obj.GetComponentsInChildren <MyDragCamera>(true)[0].RelatedCamera = m_camAttributeGridList;

            m_camAttributeGridList.GetComponentsInChildren <MyDragableCamera>(true)[0].MINY = -220 - ATTRIBUTEGRIDHEIGHT * (m_listAttributeGridGameObject.Count - 4);

            EventDispatcher.TriggerEvent <int>("LoadAttributeRewardGridDone", ag.Id);

            ag.SignFGImg     = ad.SignFGName;
            ag.SignText      = ad.SignText;
            ag.Title         = ad.Title;
            ag.Quest         = ad.Quest;
            ag.ProcessStatus = ad.ProcessStatus;
            ag.IsFinished    = ad.IsFinshed;
            ag.IsShare       = ad.IsShare;
            ag.ProcessText   = ad.ProcessText;
            ag.IsRunning     = ad.IsRunning;

            if (obj.name == MogoUIManager.Instance.WaitingWidgetName || btnName == MogoUIManager.Instance.WaitingWidgetName)
            {
                TimerHeap.AddTimer(500, 0, () => { EventDispatcher.TriggerEvent("WaitingWidgetFinished"); });
            }
        });
    }
    public void SetGridInfo()
    {
        AttributeRewardGridData ad = new AttributeRewardGridData();

        ad.Quest = "888888";
        ad.ProcessStatus = 88;
        ad.SignFGName = "bb_zuanshi";
        ad.SignText = "88";
        ad.Title = "88";

        ad.IsShare = true;
        ad.IsFinshed = false;
        ad.IsRunning = false;

        AttributeRewardUIViewManager.Instance.AddAttributeGrid(ad);
    }
    public void SetGridInfo()
    {
        AttributeRewardGridData ad = new AttributeRewardGridData();

        ad.Quest         = "888888";
        ad.ProcessStatus = 88;
        ad.SignFGName    = "bb_zuanshi";
        ad.SignText      = "88";
        ad.Title         = "88";

        ad.IsShare   = true;
        ad.IsFinshed = false;
        ad.IsRunning = false;

        AttributeRewardUIViewManager.Instance.AddAttributeGrid(ad);
    }
    public void SetGridInfo(int id, RewardAchievementData data, int process, bool isShare = true, bool isFinshed = false, bool isRunning = false)
    {
        AttributeRewardGridData ad = new AttributeRewardGridData();

        ad.Quest = LanguageData.dataMap[data.text].Format(data.args[0]);
        ad.SignFGName = "bb_zuanshi";
        ad.SignText = data.diamond.ToString();
        ad.Title = LanguageData.dataMap[data.title].content;

        // ЗўЮёЦїЪ§Он
        // if ()
        ad.ProcessStatus = process * 100 / data.args[0] > 100 ? 100 : process * 100 / data.args[0];
        ad.ProcessText = process + "/" + data.args[0];
        ad.IsShare = isShare;
        ad.IsFinshed = isFinshed;
        ad.IsRunning = isRunning;

        AttributeRewardUIViewManager.Instance.AddAttributeGrid(ad, id);
    }
    public void SetGridInfo(int id, RewardAchievementData data, int process, bool isShare = true, bool isFinshed = false, bool isRunning = false)
    {
        AttributeRewardGridData ad = new AttributeRewardGridData();

        ad.Quest      = LanguageData.dataMap[data.text].Format(data.args[0]);
        ad.SignFGName = "bb_zuanshi";
        ad.SignText   = data.diamond.ToString();
        ad.Title      = LanguageData.dataMap[data.title].content;

        // ЗўЮёЦїЪ§Он
        // if ()
        ad.ProcessStatus = process * 100 / data.args[0] > 100 ? 100 : process * 100 / data.args[0];
        ad.ProcessText   = process + "/" + data.args[0];
        ad.IsShare       = isShare;
        ad.IsFinshed     = isFinshed;
        ad.IsRunning     = isRunning;

        AttributeRewardUIViewManager.Instance.AddAttributeGrid(ad, id);
    }
    public void AddAttributeGrid(AttributeRewardGridData ad, int gridID = -1)
    {        
        AssetCacheMgr.GetUIInstance("AttributeRewardGrid.prefab", (prefab, id, go) =>
        {
            //for (int i = 0; i < m_listAttributeGrid.Count; ++i)
            //{
            //    if (m_listAttributeGrid[i].Id == gridID)
            //    {
            //        AssetCacheMgr.ReleaseInstance((GameObject)go);
            //        return;
            //    }
            //}
            GameObject obj = (GameObject)go;
            //AttributeRewardGrid ag = obj.GetComponentsInChildren<AttributeRewardGrid>(true)[0];
            AttributeRewardGrid ag = obj.AddComponent<AttributeRewardGrid>();

            obj.name = "AttributeRewardGrid" + m_listAttributeGridGameObject.Count;
            obj.transform.FindChild("AttributeRewardShareBtn").name = "AttributeRewardShareBtn" + m_listAttributeGridGameObject.Count;
            string btnName = "AttributeRewardShareBtn" + m_listAttributeGridGameObject.Count;

            Mogo.Util.LoggerHelper.Debug("AddAttributeGrid Process == " + ad.ProcessStatus);

            if (gridID == -1)
                ag.Id = m_listAttributeGridGameObject.Count;
            else
                ag.Id = gridID;

            obj.transform.parent = m_goAttributeGridList.transform;
            obj.transform.localPosition = new Vector3(0, m_listAttributeGridGameObject.Count * -ATTRIBUTEGRIDHEIGHT, 0);
            obj.transform.localScale = new Vector3(1, 1, 1);

            m_listAttributeGrid.Add(ag);
            m_listAttributeGridGameObject.Add(obj);
 
            obj.GetComponentsInChildren<MyDragCamera>(true)[0].RelatedCamera = m_camAttributeGridList;

            m_camAttributeGridList.GetComponentsInChildren<MyDragableCamera>(true)[0].MINY = -220 - ATTRIBUTEGRIDHEIGHT * (m_listAttributeGridGameObject.Count - 4);

            EventDispatcher.TriggerEvent<int>("LoadAttributeRewardGridDone", ag.Id);

            ag.SignFGImg = ad.SignFGName;
            ag.SignText = ad.SignText;
            ag.Title = ad.Title;
            ag.Quest = ad.Quest;
            ag.ProcessStatus = ad.ProcessStatus;
            ag.IsFinished = ad.IsFinshed;
            ag.IsShare = ad.IsShare;
            ag.ProcessText = ad.ProcessText;
            ag.IsRunning = ad.IsRunning;

            if (obj.name == MogoUIManager.Instance.WaitingWidgetName || btnName == MogoUIManager.Instance.WaitingWidgetName)
            {
                TimerHeap.AddTimer(500, 0, () => { EventDispatcher.TriggerEvent("WaitingWidgetFinished"); });
            }
        });
    }