Esempio n. 1
0
            public RewardEffectUi_RewardItem GetInstance()
            {
                RewardEffectUi_RewardItem instance = null;

                if (mCachedInstances != null)
                {
                    while ((instance == null || instance.Equals(null)) && mCachedInstances.Count > 0)
                    {
                        instance = mCachedInstances.Dequeue();
                    }
                }
                if (instance == null || instance.Equals(null))
                {
                    instance = Instantiate <RewardEffectUi_RewardItem>(m_RewardItem);
                }
                Transform t0 = m_RewardItem.transform;
                Transform t1 = instance.transform;

                t1.SetParent(t0.parent);
                t1.localPosition = t0.localPosition;
                t1.localRotation = t0.localRotation;
                t1.localScale    = t0.localScale;
                t1.SetSiblingIndex(t0.GetSiblingIndex() + 1);
                return(instance);
            }
Esempio n. 2
0
        private void ShowRewardEffect(GoodsType goods, int count, Vector3 startPos)
        {
            if (goods == GoodsType.KEY)
            {
                ShowRewardKey(goods, count, startPos);
                return;
            }
            if (goods != GoodsType.GOLD && goods != GoodsType.DIAMOND && goods != GoodsType.CAMPSITE_REWARD)
            {
                return;
            }

            int     effectNum = count > m_RewardEffectNum || count < 0 ? m_RewardEffectNum : count;
            TokenUI tokenUi   = Global.gApp.gUiMgr.GetPanelCompent <TokenUI>(Wndid.TokenUI);

            if (tokenUi != null)
            {
                m_IdEffectCountDic[goods] += effectNum;
                tokenUi.UnLockById(goods, false, false);
                for (int i = 0; i < effectNum; i++)
                {
                    RewardEffectUi_RewardItem rewardEffect = RewardItem.GetInstance();
                    float radius = 0f;
                    if (effectNum > 1)
                    {
                        radius = Random.Range(m_RewardEffectRadius * 0.2f, m_RewardEffectRadius);
                    }
                    float   angle     = (float)Random.Range(0, 360);
                    float   x         = radius * Mathf.Cos(angle);
                    float   y         = radius * Mathf.Sin(angle);
                    Vector3 effectPos = new Vector3(startPos.x + x, startPos.y + y, startPos.z);
                    rewardEffect.Init(goods, effectPos, startPos, this, tokenUi);
                }
            }
        }
Esempio n. 3
0
 public bool CacheInstance(RewardEffectUi_RewardItem instance)
 {
     if (instance == null || instance.Equals(null))
     {
         return(false);
     }
     if (mCachedInstances == null)
     {
         mCachedInstances = new Queue <RewardEffectUi_RewardItem>();
     }
     if (mCachedInstances.Contains(instance))
     {
         return(false);
     }
     instance.gameObject.SetActive(false);
     mCachedInstances.Enqueue(instance);
     return(true);
 }