/// <summary> /// 更新大血条 /// </summary> private void UpdateBossBlood() { if (null == BossBlood) { return; } JitterBossBlood(); for (int i = 0; i < BossBloodProityList.Count; i++) { EntityView ev = BossBloodProityList[i]; if (null == ev) { continue; } if (!ev.gameObject) { continue; } if (ev.BossBloodShowDistance > 0) { if (bossBloodTarget == null && EntityFactory.MainHero != null) { bossBloodTarget = EntityFactory.MainHero.transform; } float dis = Vector3.SqrMagnitude(bossBloodTarget.position - ev.gameObject.transform.position); if (dis < ev.BossBloodShowDistance * ev.BossBloodShowDistance) { if (ev.CampFlag != SPELL.CampFlag.CampFlag_Friend && ev.CampFlag != SPELL.CampFlag.CampFlag_Self) { EntityEnterBossBloodDistance(ev.ID); } break; } else { EntityLeaveBossBloodDistance(ev.ID); } } } if (null != BossBlood && CurrentBossBloodHostID > 0) { EntityView ev = EntityFactory.getEntityViewByID(CurrentBossBloodHostID); if (ev != null && ev.StateMachine != null) { UpdateBossBloodAndTowerSoldier(ev, ev.StateMachine.GetVisible()); } else { UpdateBossBloodAndTowerSoldier(ev, false); } BossBlood.OnUpdate(); } }
/// <summary> /// 更新BOSS血条 /// </summary> private static void UpdateBossBlood() { if (!EntityFactory.MainHero) { return; } JitterBossBlood(); //检测是否有boss血条进入到显示范围 for (int i = 0; i < BossBloodProityList.Count; i++) { EntityView gv = BossBloodProityList[i]; if (null == gv) { continue; } if (!gv.gameObject) { continue; } if (gv.BossBloodShowDistance > 0) { float dis = Vector3.SqrMagnitude(EntityFactory.MainHero.transform.position - gv.gameObject.transform.position); if (dis < gv.BossBloodShowDistance * gv.BossBloodShowDistance) { if (gv.CampFlag != SPELL.CampFlag.CampFlag_Friend && gv.CampFlag != SPELL.CampFlag.CampFlag_Self ) { EntityEnterBossBloodDistance(gv.ID); } break; } else { EntityLeaveBossBloodDistance(gv.ID); } } } if (null != BossBlood) { BossBlood.OnUpdate(); } }