Пример #1
0
 public void AddUnit(Unit unit)
 {
     if (!IsAlive())
     {
         backloggedUnits.Add(unit);
         Invoke("AddAllUnits", timeToOurRespawn + 0.5f);
         return;
     }
     if (!unit.IsAlive())
     {
         backloggedUnits.Add(unit);
         Invoke("AddAllUnits", unit.GetTimeUntilRespawn() + 0.5f);
         return;
     }
     int id = unit.GetID();
     if (allUnits.ContainsKey(id))
     {
         allUnits[id] = unit;
     }
     else
     {
         allUnits.Add(id, unit);
     }
     if (friendlyFire || unit == this)
         return;
     Collider[] cols = unit.GetComponents<Collider>();
     foreach (Collider col in cols)
     {
         if (col.isTrigger || col.gameObject.GetComponent<Weapon>() != null)
             continue;
         col.enabled = true;
     }
     Unit[] allOurUnits = GetAllUnits();
     foreach (Unit u in allOurUnits)
     {
         if (u == unit || !u.IsAlive())
             continue;
         Physics.IgnoreCollision(u.collider, unit.collider, true);
     }
     Physics.IgnoreCollision(unit.collider, collider, true);
 }