public void SetUnitColor(Unit unit, FloorColor color) { Material material; if (color == FloorColor.Warning) { material = (Material)Resources.Load("Materials/warningFloorRadarMaterial", typeof(Material)); } else if (color == FloorColor.Protected) { material = (Material)Resources.Load("Materials/protectedRoomRadarMaterial", typeof(Material)); } else if (color == FloorColor.Start) { material = (Material)Resources.Load("Materials/startRoomRadarMaterial", typeof(Material)); } else { material = (Material)Resources.Load("Materials/floorRadarMaterial", typeof(Material)); } foreach (Vector2 pos in unit.GetFloors()) { if (this.tiles.ContainsKey(pos)) { GameObject tile = this.tiles[pos]; tile.renderer.material = material; } } }
private void DestroyUnit(Unit unit) { Vector2 center = unit.GetCenter(); GameObject explosionPrefab = (GameObject)Resources.Load ("Prefabs/Radar/explosionRadarPrefab", typeof(GameObject)); GameObject explosion = (GameObject)Instantiate(explosionPrefab, Vector3.zero, Quaternion.identity); explosion.transform.parent = this.transform; explosion.transform.localPosition = this.levelManager.MatrixToPosition(center) / this.levelManager.WIDTH; foreach (Vector2 floor in unit.GetFloors()) { if (!tiles.ContainsKey(floor)) continue; GameObject tile = this.tiles[floor]; this.tiles.Remove(floor); Destroy(tile); } }
public void DestroyUnit(Unit unit) { bool rigidbody = this.IsExistPlayer(unit); foreach (Vector2 point in unit.GetFloors()) { this.DestroyTile(point, rigidbody); } GameObject player = GameObject.FindWithTag("Player"); Unit playerUnit = this.GetUnit(player.transform.position); if (playerUnit == unit) { // kill the player player.SendMessage("Death", false); } else { if (unit.IsEnable()) { GameObject radar = GameObject.FindWithTag("Radar"); radar.SendMessage("DestroyUnit", unit); List<GameObject> enemies = new List<GameObject>(); // Send enemies to controller killed by explosion. foreach (GameObject enemy in GameObject.FindGameObjectsWithTag("Enemy")) { if (this.level.GetUnit(this.PositionToMatrix(enemy.transform.position)) == unit) { enemy.SendMessage("Death"); enemies.Add(enemy); } } GameObject controller = GameObject.FindWithTag("GameController"); controller.SendMessage("DestroyEnemy", enemies); } } }