示例#1
0
    void OnTriggerEnter(Collider other)
    {
        Projectile enemyProjectile = other.gameObject.GetComponent <Projectile>();

        //Enemy1Controller enemy1 = other.gameObject.GetComponent<Enemy1Controller>();
        if (other.gameObject.layer == 10 || enemyProjectile)
        {
            if (isPlayerLive)
            {
                Debug.Log("GameObject " + other.gameObject.name + " hit player.");
                GameObject explosionPrefab = Instantiate(explosion, gameObject.transform.position, gameObject.transform.rotation) as GameObject;
                Destroy(explosionPrefab, 3.0f);
                top    = addShotSounds(explosionTop, Random.Range(0.8f, 1.2f));
                bottom = addShotSounds(explosionBottom, Random.Range(0.8f, 1.2f));
                top.Play();
                bottom.Play();
                rend.enabled = false;
                isPlayerLive = false;
                if (enemyProjectile)
                {
                    enemyProjectile.Hit();
                    Debug.Log("Enemy proj hit Player.");
                }
                else
                {
                    SimplePool.Despawn(other.gameObject);
                    Debug.Log("Enemy ran into Player".Colored(Colors.blue));
                }
                //SimplePool.Despawn(this.gameObject);
                GalagaHelper.numOfPlayers -= 1;
                GalagaHelper.PlacePlayerIcons();
                GalagaHelper.isPlayerCaptured = true;
                GameObject.FindGameObjectWithTag("MainFormation").GetComponent <MainEnemyFormation>().isReadyDone = false;
                Destroy(gameObject);
                if (!CanPlayerStillPlay())
                {
                    MainEnemyFormation main = GameObject.FindGameObjectWithTag("MainFormation").GetComponent <MainEnemyFormation>();
                    main.Invoke("EndGame", 3.0f);
                }
                else
                {
                    CreatePlayer();
                }
            }
        }

        //if (enemyProjectile)
        //{
        //    if (isPlayerLive)
        //    {
        //        GameObject explosionPrefab = Instantiate(explosion, gameObject.transform.position, gameObject.transform.rotation) as GameObject;
        //        Destroy(explosionPrefab, 3.0f);
        //        Debug.Log("Enemy proj hit Player.");
        //        top = addShotSounds(explosionTop, Random.Range(0.8f, 1.2f));
        //        bottom = addShotSounds(explosionBottom, Random.Range(0.8f, 1.2f));
        //        top.Play();
        //        bottom.Play();
        //        enemyProjectile.Hit();
        //        rend.enabled = false;
        //        isPlayerLive = false;
        //        //SimplePool.Despawn(gameObject);
        //        GalagaHelper.numOfPlayers -= 1;
        //        GalagaHelper.PlacePlayerIcons();
        //        GalagaHelper.isPlayerCaptured = true;
        //        GameObject.FindGameObjectWithTag("MainFormation").GetComponent<MainEnemyFormation>().isReadyDone = false;
        //        Destroy(gameObject);
        //        if (!CanPlayerStillPlay())
        //        {
        //            MainEnemyFormation main = GameObject.FindGameObjectWithTag("MainFormation").GetComponent<MainEnemyFormation>();
        //            main.Invoke("EndGame", 3.0f);
        //            //Invoke("EndGame", 3.0f);
        //        }
        //        else
        //        {
        //            CreatePlayer();
        //        }
        //    }
        //}

        Debug.Log("Something hit the player.".Colored(Colors.darkblue));
    }