public void StartRespawnProcess(BattleUnit initiator, UnitSpawnData spawnData, float?specificTime = null) { initiator.gameObject.SetActive(false); var spawnDataWithActualParams = new UnitSpawnData( spawnData.OriginalPrefab, spawnData.UnitSpawner, spawnData.SpawnPoint, initiator.TeamController.TeamType ); if (specificTime.HasValue) { StartCoroutine(RespawnUnitByTime(initiator, spawnDataWithActualParams, specificTime.Value)); } else { RespawnUnit(initiator, spawnDataWithActualParams); } }
public void InitRespawnBehaviour(UnitSpawnData unitSpawnData) { _spawnData = unitSpawnData; }
private void RespawnUnit(BattleUnit initiator, UnitSpawnData spawnData) { Spawn(spawnData.OriginalPrefab, spawnData); Destroy(initiator.gameObject); }
private IEnumerator RespawnUnitByTime(BattleUnit initiator, UnitSpawnData spawnData, float time) { yield return(new WaitForSeconds(time)); RespawnUnit(initiator, spawnData); }