Example #1
0
    //public void OnTriggerStay2D(Collider2D hit) { OnTriggerEnter2D(hit); }

    public void OnTriggerEnter2D(Collider2D hit)
    {
        PlayerHealthScript target = hit.gameObject.GetComponent <PlayerHealthScript>();

        if (target)
        {
            target.GetComponent <SpriteRenderer> ().sortingLayerName = behindWaterLayer;
            target.GetComponent <PlayerMover>().dashTrail.drawTrail  = false;
            tripScript.tripDashTrail.enabled = false;

            float surfaceHeight = GetComponent <SpriteRenderer>().bounds.size.y / 2 + transform.position.y;

            float spreadIncrement = 0.1f;
            float spreadLeft      = 0;
            float spreadRight     = 0;

            for (int i = 0; i < splashPool.Length; i++)
            {
                float x = hit.gameObject.transform.position.x;

                if (i != 0)
                {
                    if (i % 2 == 0)                    //On even number, increase rightIncrement
                    {
                        spreadRight += spreadIncrement;
                        x           += spreadRight;
                    }
                    else                     //On odd number, decrease leftIncrement
                    {
                        spreadLeft -= spreadIncrement;
                        x          += spreadLeft;
                    }
                }

                Vector3 splashPosition = new Vector3(x, surfaceHeight, -2f);

                splashPool[i].position = splashPosition;

                //Debug.Log(leftIncrement + " " + rightIncrement);

                ParticleSystem[] particleSystems = splashPool[i].gameObject.GetComponentsInChildren <ParticleSystem>();

                foreach (ParticleSystem particleSystem in particleSystems)
                {
                    particleSystem.Play();
                }
            }

            target.DrownPlayer();
        }
    }