Пример #1
0
 /// <summary>
 /// 普通血条更新
 /// </summary>
 private void NormalUpdate()
 {
     m_InvalidList.Clear();
     if (null != m_BloodMap)
     {
         foreach (UBlood var in m_BloodMap.Values)
         {
             UBlood     ub   = var;
             EntityView view = ub.Entity;
             if (view == null || !view.IsValid)
             {
                 m_InvalidList.Enqueue(ub);
                 continue;
             }
             //如果实体未激活,或者尚未加载完毕则隐藏血条
             if (SkinInstance.isNullOrEmpry(view.SkinControl.CurrentSkinInstance) || !view.StateMachine.GetVisible())
             {
                 ub.SetEnable(false);
                 if (view.Type == ENTITY_TYPE.TYPE_PLAYER_ROLE)
                 {
                     ub.OnUpdate();
                 }
             }
             else
             {
                 ub.SetEnable(true);
                 //需要更新的血条进行正常更新
                 ub.OnUpdate();
             }
         }
     }
     while (m_InvalidList.Count > 0)
     {
         UBlood ub = m_InvalidList.Dequeue();
         if (bPreWarmBlood)
         {
             CacheBlood(ub);
         }
         else
         {
             DestroyBlood(ub);
         }
     }
     m_InvalidList.Clear();
 }