示例#1
0
        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);
            }
        }
示例#2
0
 public void InitRespawnBehaviour(UnitSpawnData unitSpawnData)
 {
     _spawnData = unitSpawnData;
 }
示例#3
0
 private void RespawnUnit(BattleUnit initiator, UnitSpawnData spawnData)
 {
     Spawn(spawnData.OriginalPrefab, spawnData);
     Destroy(initiator.gameObject);
 }
示例#4
0
        private IEnumerator RespawnUnitByTime(BattleUnit initiator, UnitSpawnData spawnData, float time)
        {
            yield return(new WaitForSeconds(time));

            RespawnUnit(initiator, spawnData);
        }