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); }