Ejemplo n.º 1
0
        private void PerformSpawn()
        {
            if (Time.time > _nextSpawnTime)
            {
                if (!_isInfinite)
                {
                    _spawnCounter++;
                }

                _nextSpawnTime = Time.time + _spawnRate;
                SpawnedPooled    spawnedObject    = _spawnPool.Get();
                IHealthContainer iHealthContainer = spawnedObject.GetComponent <IHealthContainer>();
                if (iHealthContainer != null)
                {
                    iHealthContainer.SetHP(_waveHp);
                }
                ISpeedContainer iSpeedContainer = spawnedObject.GetComponent <ISpeedContainer>();
                if (iSpeedContainer != null)
                {
                    iSpeedContainer.SetSpeed(_spawnedSpeed);
                }


                spawnedObject.Init(_spawnPool, _spawnedMaxLifeTime);

                if (_tracker)
                {
                    spawnedObject.InitTracker(_tracker);
                }
                _spawnPool.ActivateObject(spawnedObject.gameObject);

                spawnedObject.transform.position = transform.position;
                Vector3 eulerRotaion = new Vector3(
                    spawnedObject.transform.eulerAngles.x,
                    _startYAngle,
                    spawnedObject.transform.eulerAngles.z
                    );
                spawnedObject.transform.rotation = Quaternion.Euler(eulerRotaion);
            }
        }