Ejemplo n.º 1
0
    public virtual void OnEnable()
    {
        source    = (WaveSpawnerSequence)target;
        sourceRef = serializedObject;

        GetProperties();
    }
Ejemplo n.º 2
0
    IEnumerator StartSpawnSequence(WaveSpawnerSequence _manager, Wave _wave)
    {
        //delay
        float timer = 0;

        while (timer < delay)
        {
            timer += Time.deltaTime;
            yield return(new WaitForEndOfFrame());
        }

        timer = 0;
        while (curSpawnAmount < spawnAmount)
        {
            timer += Time.deltaTime;
            if (timer >= spawnDelay)
            {
                SpawnPrefab(_manager, _wave);
                timer = 0;
            }

            yield return(new WaitForEndOfFrame());
        }
        FinishSpawner(_wave);
    }
Ejemplo n.º 3
0
    IEnumerator StartWaitForPrevious(WaveSpawnerSequence _manager, Wave _wave, WaveSpawner _previousSpawner)
    {
        while (!_previousSpawner.IsFinished)
        {
            yield return(new WaitForEndOfFrame());
        }

        SpawnSequence(_manager, _wave);
    }
Ejemplo n.º 4
0
 public void InitializeSpawner(WaveSpawnerSequence _manager, Wave _wave, WaveSpawner _previousSpawner)
 {
     if (waitForPreviousToFinish && _previousSpawner != null)
     {
         WaitForPrevious(_manager, _wave, _previousSpawner);
     }
     else
     {
         SpawnSequence(_manager, _wave);
     }
 }
Ejemplo n.º 5
0
    void SpawnPrefab(WaveSpawnerSequence _manager, Wave _wave)
    {
        var pos       = _manager.SpawnLocations[spawnPos.indexValue];
        var spawnable = _manager.Spawnables[this.spawnable.indexValue].spawnablePrefab;
        var spawn     = GameObject.Instantiate(spawnable, pos.Position, Quaternion.Euler(pos.Euler));
        var unit      = spawn.GetComponent <Unit>();

        if (unit)
        {
            unit.SetWaveSpawnerManager(_manager);
        }
        curSpawnAmount++;
        _wave.AddSpawnAmount();
    }
Ejemplo n.º 6
0
 public void InitializeWave(WaveSpawnerSequence _manager)
 {
     curSpawnTotal = SpawnTotal;
     manager       = _manager;
     manager.StartCoroutine(StartWaveSequence());
 }
Ejemplo n.º 7
0
 void SpawnSequence(WaveSpawnerSequence _manager, Wave _wave)
 {
     _manager.StartCoroutine(StartSpawnSequence(_manager, _wave));
 }
Ejemplo n.º 8
0
 void WaitForPrevious(WaveSpawnerSequence _manager, Wave _wave, WaveSpawner _previousSpawner)
 {
     _manager.StartCoroutine(StartWaitForPrevious(_manager, _wave, _previousSpawner));
 }
Ejemplo n.º 9
0
 public void SetWaveSpawnerManager(WaveSpawnerSequence _manager)
 {
     spawnerManager = _manager;
 }