private void Update() { if (m_Unit.IsNullOrDestroy()) { return; } UnitUpdate(m_Unit.UnitControl); OnUpdate(); }
public Player GetPlayer(UnitContainer unit) { if (unit.IsNullOrDestroy()) { return(null); } var control = GetPlayerControl(unit); return(control == null ? null : control.Player); }
void CheckVisibleState() { if (m_Target.IsNullOrDestroy()) { return; } float sqrInvis = m_RadiusInvisible * m_RadiusInvisible; var targetPos = m_Target.TF.position; targetPos.y = 0f; //главная цель становится прозрачной как только попадает в траву if (InGrass(m_Target.TF)) { SetFade(m_Target.VisibleControl); } else { SetVisible(m_Target.VisibleControl); } for (int i = m_Targets.Count - 1; i >= 0; i--) { var elem = m_Targets[i]; if (elem.IsNullOrDestroy()) { RemoveTarget(i); continue; } bool inGrass = InGrass(elem.TF); if (!inGrass) { SetVisible(elem.VisibleControl); continue; } var pos = elem.TF.position; pos.y = 0f; float sqr = (targetPos - pos).sqrMagnitude; bool invis = sqr > sqrInvis; if (invis) { SetInvisible(elem.VisibleControl); } else { SetFade(elem.VisibleControl); } } }
public PlayerMainControl GetPlayerControl(UnitContainer unit) { if (unit.IsNullOrDestroy()) { return(null); } for (int i = m_PlayerControls.Count - 1; i >= 0; i--) { if (m_PlayerControls[i].Unit == unit) { return(m_PlayerControls[i]); } } return(null); }