public void PlayEffect(Vector3 position)
    {
        GameObject go = Pooler.GetPooledObject(PoolsNames[0]);

        ParticleSystem ps = go.GetComponent <ParticleSystem>();

        go.SetActive(true);
        if (ps != null)
        {
            ps.transform.position = position;
            ps.Play();
        }
    }
    // Update is called once per frame
    void Update()
    {
        GameObject germ = germPool.GetPooledObject();

        if (germ && (Time.fixedTime - lastSpawn) > spawnInterval)
        {
            float whichDir = Random.Range(0f, 1f);
            if (whichDir < 0.5f)
            {
                germ.transform.position = posOne;
            }
            else
            {
                germ.transform.position = posTwo;
            }
            germ.GetComponent <GermCont>().edison = edison;
            germ.SetActive(true);
            lastSpawn = Time.fixedTime;
        }
        if (Time.timeSinceLevelLoad - timeSinceLastCheck >= 10f)
        {
            spawnInterval      = Mathf.Max(0.2f, spawnInterval - 0.2f);
            timeSinceLastCheck = Time.timeSinceLevelLoad;
        }
    }
Exemple #3
0
        private void SpawnObject()
        {
            _time = 0;
            BaseEnemy enemy = _pooler.GetPooledObject(_enemyToSpawn.name, transform.position, Quaternion.identity).GetComponent <BaseEnemy>();

            enemy.Init(_player, _pooler, _cameraShake, _scoreManager, _soundPlayer);
        }
    //bool moveLost(List<Ball> balls)
    //{
    //    bool allDisabled = false;

    //    for (int i = 0; i < balls.Count; i++)
    //    {

    //        balls[i].Progress += Time.deltaTime * currentSpeed * ballSizePercent;
    //            moveBall(balls[i]);
    //            if (balls[i].Progress >= 1)
    //            {
    //            balls[i].gameObject.SetActive(false);
    //            balls.RemoveAt(i);
    //            }


    //    }
    //    if ( balls.Count==0)
    //        allDisabled = true;
    //    return allDisabled;
    //}


    public void GetNewBallPlace(Ray direction)
    {
        if (lost)
        {
            return;
        }
        string poolName = nextBallsPool.Dequeue();
        string newPool  = getRandomPrefab();

        nextBallsPool.Enqueue(newPool);
        LevelDataView.SetData(nextBallsPool);
        Ball b = Pooler.GetPooledObject(poolName).GetComponent <Ball>();

        b.gameObject.SetActive(true);
        b.ClearState();
        b.OnBallReachedTarget += OnBallAdded;
        b.StartMove(direction);
    }
Exemple #5
0
        private void Killed()
        {
            _audioManager.Play(SoundNames.PlayerDeath);

            _pooler.GetPooledObject(_playerExplosion.name, transform.position, Quaternion.identity);
            _cameraShake.ShakeCameraOnce(2.2f);

            gameObject.SetActive(false);
        }
Exemple #6
0
    private IEnumerator Explode()
    {
        _spriteRenderer.enabled = false;
        _collider2D.enabled     = false;
        _pooler.GetPooledObject(_explosionName.name, transform.position, Quaternion.identity);

        yield return(new WaitForSeconds(0.55f));

        gameObject.SetActive(false);
    }
Exemple #7
0
        protected void Shoot()
        {
            if (!_isReloaded)
            {
                return;
            }

            _pooler.GetPooledObject(_bullet.name, _barrel.position, _barrel.rotation);
            StartCoroutine(Reload());
            OnShoot?.Invoke();
        }
        public void ApplyDamage(int damage)
        {
            ShakeCamera();
            _soundPlayer.Play(SoundNames.Hurt);
            _health -= damage;

            if (!(_health <= 0))
            {
                return;
            }

            _soundPlayer.Play(SoundNames.EnemyDeath);
            _scoreManager.AddScore(ScoreWeight);

            _pooler.GetPooledObject(_enemyExplosion.name, transform.position, Quaternion.identity);

            gameObject.SetActive(false);
        }