void Cancel(int ID) { UnitScript[] AllUnits = FindObjectsOfType <UnitScript>(); foreach (UnitScript unit in AllUnits) { if (unit.PlayerID == ID && unit.isRealUnit) { dz.DestroyRealUnit(unit); unit.myTile.isWalkable = true; unit.myTile.myUnit = null; unit.DeathEvent -= unit.myTile.OnMyUnitDied; if (Player.Players[ID].Type == PlayerType.Local) { if (unit.unitUnit.ThisRealSprite == null) { ab.CreateUnit(unit.unitUnit.thisBox, unit.unitUnit.thisSprite, unit.unitUnit); } else { ab.CreateHero(unit.unitUnit.thisBox, unit.unitUnit.ThisRealSprite, unit.unitUnit); } } if (Application.isEditor) { DestroyImmediate(unit.gameObject); } else { Destroy(unit.gameObject); } } } }