示例#1
0
    private IEnumerator DeathProcesses()
    {
        death_running = true;
        if (shockwave_force == true)
        {
            ApplyExplosionForce(transform.position, explosion_range, force_of_explosion);
        }
        //AppyExplosionForce();
        SpriteRenderer sr = null;

        //***************
        //Disable Sprites
        //***************
        sr = gameObject.GetComponent <SpriteRenderer>();
        if (sr != null)
        {
            sr.enabled = false;
        }
        SpriteRenderer[] sr_col = gameObject.GetComponentsInChildren <SpriteRenderer>();
        if (sr_col != null)
        {
            foreach (SpriteRenderer s in sr_col)
            {
                s.enabled = false;
            }
        }
        Transform obj = gameObject.transform.Find("Sprint");

        if (obj != null)
        {
            if (sr != null)
            {
                sr.enabled = false;
            }
        }

        //*****************
        //Disable Collision
        //*****************
        PolygonCollider2D pcol = gameObject.GetComponent <PolygonCollider2D>();

        if (pcol != null)
        {
            pcol.enabled = false;
        }

        BoxCollider2D bcol = gameObject.GetComponent <BoxCollider2D>();

        if (bcol != null)
        {
            bcol.enabled = false;
        }

        //********************
        //Throw som edebri out
        //********************
        Debris debris = gameObject.GetComponent <Debris>();

        if (debris != null)
        {
            debris.CreateDebris();
        }

        if (deathFX != null)
        {
            GameObject explosion = Instantiate(deathFX, transform.position, transform.rotation);
            if (shockwave != null)
            {
                Instantiate(shockwave, transform.position, transform.rotation);
            }
            Destroy(explosion, durationOfExplosion);
        }

        yield return(new WaitForSeconds(durationOfExplosion));

        Destroy(gameObject);
    }