// Public callbacks public void OnPlayerSpawn() { var spawnAreaPos = _spawnArea.GetCollider2D().transform.position; var points = new List <Vector2>(); points.Add(new Vector2(spawnAreaPos.x, spawnAreaPos.y)); // Destroy all the objects in the area var objs = _spawnArea.GetObjectsInArea(); for (int i = 0; i < objs.Count; ++i) { var obj = objs[i]; if (obj.activeSelf) { var damagables = obj.GetComponents <IDamagable>(); for (int j = 0; j < damagables.Length; ++j) { damagables[i].OnDamageGiven(Int32.MaxValue, null, points); } } } // Make tank face the right direction _playerTank.Restart(_spawnArea.GetDefaultDirection(), null); // Move the player to the spawn area _playerTank.transform.position = _spawnArea.transform.position; _playerTank.gameObject.SetActive(true); }