/// <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); } }
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(); }