示例#1
0
    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);
    }
示例#3
0
    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);
 }