public void RefreshUnitState() { if (!SelfBaseUnit.IsLive) { return; } UnitsEnemy.Clear(); UnitsAlly.Clear(); UnitsSelf.Clear(); foreach (var item in Units) { if (SelfBaseUnit.IsEnemy(item)) { UnitsEnemy.Add(item); } if (SelfBaseUnit.IsSOF(item)) { UnitsAlly.Add(item); } if (SelfBaseUnit.IsSelf(item)) { UnitsSelf.Add(item); } } }
public void Clear() { foreach (var item in Units) { item.DetectionMgr.Remove(this, SelfBaseUnit); } Units.Clear(); UnitsEnemy.Clear(); UnitsAlly.Clear(); UnitsSelf.Clear(); for (int i = 0; i < ColliderResults.Length; i++) { ColliderResults[i] = null; } }
public void DoTestExit(Collider col) { if (!SelfBaseUnit.IsLive) { return; } TUnit unit = col.GetComponent <TUnit>(); if (unit != null) { Units.Remove(unit); UnitsEnemy.Remove(unit); UnitsAlly.Remove(unit); UnitsSelf.Remove(unit); unit.DetectionMgr.Remove(this, SelfBaseUnit); OnExit(unit); } OnExitObject(col); }
public void RefreshEnemyAlly() { UnitsEnemy.Clear(); UnitsAlly.Clear(); UnitsSelf.Clear(); foreach (var item in Units) { if (SelfBaseUnit.IsEnemy(item)) { UnitsEnemy.Add(item); } if (SelfBaseUnit.IsSOF(item)) { UnitsAlly.Add(item); } if (SelfBaseUnit.IsSelf(item)) { UnitsSelf.Add(item); } } }
public void DoTestEnter(Collider col) { if (!SelfBaseUnit.IsLive) { return; } if (col == null) { return; } TUnit unit = col.GetComponent <TUnit>(); if (unit != null) { if (!unit.IsLive) { return; } Units.Add(unit); if (SelfBaseUnit.IsEnemy(unit)) { UnitsEnemy.Add(unit); } if (SelfBaseUnit.IsSOF(unit)) { UnitsAlly.Add(unit); } if (SelfBaseUnit.IsSelf(unit)) { UnitsSelf.Add(unit); } unit.DetectionMgr.Add(this, SelfBaseUnit); OnEnter(unit); } OnEnterObject(col); }