示例#1
0
    public void OnTriggerEnter(Collider col)
    {
        int   num      = 0;
        Color matColor = GetComponent <Renderer>().material.color;

        for (int i = 0; i < colors.Length; i++)
        {
            if (colors[i] == matColor)
            {
                num = i;
            }
        }

        if (num == 0 && col.CompareTag("color1"))
        {
            ScoreManager.Instance.AddScore(1, 0, transform.position);
            if (spawnerScript == null)
            {
                if (scripted == null)
                {
                    doubleS.EnableExplosion(transform.position, materials[num]);
                }
                else
                {
                    scripted.EnableExplosion(transform.position, materials[num]);
                }
            }
            else
            {
                spawnerScript.EnableExplosion(transform.position, materials[num]);
            }
            gameObject.SetActive(false);
        }
        else if (num == 1 && col.CompareTag("color2"))
        {
            ScoreManager.Instance.AddScore(1, 1, transform.position);
            if (spawnerScript == null)
            {
                if (scripted == null)
                {
                    doubleS.EnableExplosion(transform.position, materials[num]);
                }
                else
                {
                    scripted.EnableExplosion(transform.position, materials[num]);
                }
            }
            else
            {
                spawnerScript.EnableExplosion(transform.position, materials[num]);
            }
            gameObject.SetActive(false);
        }
        else if (num == 2 && col.CompareTag("color3"))
        {
            ScoreManager.Instance.AddScore(1, 2, transform.position);
            if (spawnerScript == null)
            {
                if (scripted == null)
                {
                    doubleS.EnableExplosion(transform.position, materials[num]);
                }
                else
                {
                    scripted.EnableExplosion(transform.position, materials[num]);
                }
            }
            else
            {
                spawnerScript.EnableExplosion(transform.position, materials[num]);
            }
            gameObject.SetActive(false);
        }
        else if (num == 3)
        {
            // bombs
            if (transform.position.x > 0)
            {
                Instantiate(rightBomb, transform.position, Quaternion.identity);
                Instantiate(bombParticles, transform.position, Quaternion.Euler(-5, 90, 0));
            }
            else
            {
                Instantiate(leftBomb, transform.position, Quaternion.identity);
                Instantiate(bombParticles, transform.position, Quaternion.Euler(-5, -90, 0));
            }

            if (spawnerScript == null)
            {
                if (scripted == null)
                {
                    doubleS.EnableExplosion(transform.position, materials[num]);
                }
                else
                {
                    scripted.EnableExplosion(transform.position, materials[num]);
                }
            }
            else
            {
                spawnerScript.EnableExplosion(transform.position, materials[num]);
            }

            if (col.CompareTag("Barrier"))
            {
                Manager.Instance.UpdateHealth(-1.0f, transform.localPosition);
            }
            gameObject.SetActive(false);
        }
        else if (num == 4)
        {
            // health
            if (spawnerScript == null)
            {
                if (scripted == null)
                {
                    doubleS.EnableExplosion(transform.position, materials[num]);
                }
                else
                {
                    scripted.EnableExplosion(transform.position, materials[num]);
                }
            }
            else
            {
                spawnerScript.EnableExplosion(transform.position, materials[num]);
            }

            if (Manager.Instance.GetHealth() < 1)
            {
                Manager.Instance.HealhBlock(transform.localPosition);
                Instantiate(healthParticles, transform.position, Quaternion.identity);
            }
            else
            {
                ScoreManager.Instance.ScoreBlock(transform.position);
            }
            gameObject.SetActive(false);
        }
        else if (col.CompareTag("Bomb"))
        {
            if (spawnerScript == null)
            {
                if (scripted == null)
                {
                    doubleS.EnableExplosion(transform.position, materials[num]);
                }
                else
                {
                    scripted.EnableExplosion(transform.position, materials[num]);
                }
            }
            else
            {
                spawnerScript.EnableExplosion(transform.position, materials[num]);
            }
            ScoreManager.Instance.AddScore(1, 3, transform.position);
            gameObject.SetActive(false);
        }
        else if (col.CompareTag("Barrier"))
        {
            Manager.Instance.UpdateHealth(-.05f, transform.localPosition);
            if (spawnerScript == null)
            {
                if (scripted == null)
                {
                    doubleS.EnableExplosion(transform.position, materials[num]);
                }
                else
                {
                    scripted.EnableExplosion(transform.position, materials[num]);
                }
            }
            else
            {
                spawnerScript.EnableExplosion(transform.position, materials[num]);
            }
            gameObject.SetActive(false);
        }
    }