// Here we handle the collision events with another particles, in this example water+lava= water-> gas
    void OnTriggerEnter2D(Collider2D other)
    {
        //if (currentState == STATES.WATER && other.gameObject.tag == "DynamicParticle")
        //{
        //    if (other.collider.GetComponent<DynamicParticle>().currentState == STATES.LAVA)
        //    {
        //        SetState(STATES.GAS);
        //    }
        //}

        //ps.Play();

        /*
         * if (other.gameObject.CompareTag("bullet2") && !isSteaming)
         * {
         *  GameObject psChild = Instantiate(ps);
         *  psChild.transform.position = gameObject.transform.position;
         *  psChild.transform.SetParent(gameObject.transform);
         *  Destroy(gameObject, 7f);
         *
         *  isSteaming = true;
         * }*/
        if (other.tag == "WaterPool")
        {
            managerScript.SetWaterInPool(managerScript.GetWaterInPool() + 1);
            inPool = true;
        }
        if (other.tag != "WaterPool" && other.tag != "WaterDisappear" && other.tag != "WaterPoolCollisionArea" && other.tag != "bullet2")
        {
            destroyObject = true;
        }
    }
Exemple #2
0
    private void OnTriggerEnter2D(Collider2D collision)
    {
        if (seepingEnabled)
        {
            if (collision.gameObject.name == "SeepingCollider")
            {
                cc.enabled = false;
                bc.enabled = false;
            }
            else if (collision.gameObject.name == "RightPoolBoundary")
            {
                stopMoving  = true;
                rb.velocity = new Vector2(0, 0);
                manager.setWaterInPool1(manager.getWaterInPool1() + 1);
                Destroy(gameObject);
            }
            else if (collision.gameObject.name == "WaterPoolColliderRight")
            {
                manager.setWaterInPool1(manager.getWaterInPool1() + 1);
            }
        }
        else
        {
            if (collision.transform.tag == "bullet2")
            {
                heatEnergyThreshold -= heatEnergyIncrement;
                if (frozen)
                {
                    Destroy(collision.gameObject);
                }
            }
            else if (collision.gameObject.name == "WaterPoolColliderLeft" && !frozen)
            {
                manager.setWaterInPool2(manager.getWaterInPool2() + 1);
                AudioManager.playSplash();
                Destroy(gameObject);
            }
            else if (collision.transform.tag == "FreezeCollider")
            {
                this.transform.GetChild(0).gameObject.SetActive(false);
                sr.enabled = true;
                bc.enabled = true;
                cc.enabled = false;
                this.transform.localScale = new Vector3(1, 1, 1);
                frozen = true;
            }
        }

        if (SceneManager.GetActiveScene().name == "Level 5")
        {
            if (collision.tag == "WaterPool" && !frozen)
            {
                ILevelManagerWater manager5 = GameObject.Find("GameManager").GetComponent <ILevelManagerWater>();
                manager5.SetWaterInPool(manager5.GetWaterInPool() + 1);
                isInPool = true;
                AudioManager.playSplash();
                Destroy(gameObject);
            }
        }
    }