Пример #1
0
        /// <summary>
        /// 摧毁血条实例
        /// </summary>
        /// <param name="instance"></param>
        private void DestroyBlood(UBlood instance)
        {
            if (null == instance)
            {
                return;
            }

            int id = instance.ID;

            //节点有效则缓存节点,大血条不用
            if (instance.CanvasNode.isValid && instance.BloodType != BloodStyleType.Boss)
            {
                if (!m_unUseCanvasNodeMap.ContainsKey(instance.BloodType))
                {
                    m_unUseCanvasNodeMap.Add(instance.BloodType, new Queue <BloodCanvasNode>());
                }

                m_unUseCanvasNodeMap[instance.BloodType].Enqueue(instance.CanvasNode);
            }

            var temp = instance.gameObject;

            instance.resNode.DestroyInstanceRes(ref temp);
            instance.Clear();

            if (m_BloodMap.ContainsKey(id))
            {
                m_BloodMap[id] = null;
                m_BloodMap.Remove(id);
            }
        }
Пример #2
0
        public void DestroyALL()
        {
            ClearCache();

            if (null != m_BloodMap)
            {
                foreach (KeyValuePair <int, UBlood> var in m_BloodMap)
                {
                    UBlood ub = var.Value;
                    if (ub != null)
                    {
                        var temp = ub.gameObject;
                        ub.resNode.DestroyInstanceRes(ref temp);
                        ub.Clear();
                    }
                }

                m_curIndexArry = new Vector2[3];
                m_BloodMap.Clear();
            }

            if (null != BossBlood)
            {
                var temp = BossBlood.gameObject;
                BossBlood.resNode.DestroyInstanceRes(ref temp);
                BossBlood.Clear();
                BossBlood = null;

                CurrentBossBloodHostID = -1;
            }
            BossBloodEntityTable.Clear();
            BossBloodProityList.Clear();

            m_unUseCanvasNodeMap.Clear();
        }