Example #1
0
            public FightUI_HeartItem GetInstance()
            {
                FightUI_HeartItem 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 <FightUI_HeartItem>(m_HeartItem);
                }
                Transform t0 = m_HeartItem.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);
            }
Example #2
0
        private void MainRoleHpChange(float curHp, float maxHp)
        {
            int mHp = (int)maxHp;

            //set hearts
            while (m_Hearts.Count < mHp)
            {
                FightUI_HeartItem item = HeartItem.GetInstance();
                item.gameObject.SetActive(true);
                m_Hearts.Add(item);
            }
            for (int i = m_Hearts.Count - 1, j = 1; i >= 0; i--, j++)
            {
                bool on = j <= curHp;
                FightUI_HeartItem item = m_Hearts[i];
                item.heart.gameObject.SetActive(on);
                item.heartbreak.gameObject.SetActive(!on);
            }

            ////recycle
            //foreach (FightUI_HeartItem item in hearts)
            //{
            //    HeartItem.CacheInstance(item);
            //}
        }
Example #3
0
 public bool CacheInstance(FightUI_HeartItem instance)
 {
     if (instance == null || instance.Equals(null))
     {
         return(false);
     }
     if (mCachedInstances == null)
     {
         mCachedInstances = new Queue <FightUI_HeartItem>();
     }
     if (mCachedInstances.Contains(instance))
     {
         return(false);
     }
     instance.gameObject.SetActive(false);
     mCachedInstances.Enqueue(instance);
     return(true);
 }