コード例 #1
0
    private void Morrer()
    {
        if (minhaVida < 1)
        {
            //Dispara a animação de Morrer
            if (!morto)
            {
                minhaArma.GetComponent <MudarPai> ().MudarMeuPai(null);
                meuAnimator.SetTrigger("Morrer");
                morto = true;

                minhaArma.gameObject.AddComponent(typeof(Rigidbody2D));

                BoxCollider2D[] temp_boxCol2D = minhaArma.GetComponentsInChildren <BoxCollider2D> ();
                for (int i = 0; i < temp_boxCol2D.Length; i++)
                {
                    temp_boxCol2D [i].enabled = true;
                }

                Destroy(GetComponent <Collider2D> ());
                Destroy(GetComponent <Rigidbody2D> ());

                if (Random.Range(0f, 100f) <= 35)
                {
                    Vector3 posicao = new Vector3(transform.position.x, transform.position.y + 0.5f, transform.position.z);
                    Instantiate(caixasPrefab [Random.Range(0, caixasPrefab.Length)], posicao, transform.rotation);
                }
            }
            else
            {
                AnimatorStateInfo temp_State = meuAnimator.GetCurrentAnimatorStateInfo(0);

                //Caso o tag da animação seja igual a <Morto>, quer dizer q os coponentes deste inimigo pode ser deletados
                if (temp_State.IsTag("Morto"))
                {
                    Destroy(meuAnimator);
                    Destroy(minhaArma.GetComponent <MudarPai> ());
                    Destroy(minhaArma);
                    Destroy(GetComponent <InimigaIA> ());
                }
            }
            return;
        }
    }
コード例 #2
0
    // Use this for initialization
    void Awake()
    {
        contador = Random.Range(tempoTiroRange.x, tempoTiroRange.y);

        meuRigidbody2D = GetComponent <Rigidbody2D> ();

        recarregando = false;
        morto        = false;

        meuAnimator = GetComponentInChildren <Animator> ();
        jose        = GameObject.FindWithTag("Player").transform;

        larguraInicial = transform.localScale.x;

        //Sorteia e cria uma arma para o inimigo
        minhaArma         = Instantiate(armas [Random.Range(0, 3)], transform).GetComponent <Armas> ();
        minhaArma.enabled = true;

        //Coloca a arma na mão certa
        if (minhaArma.maoEsquerda)
        {
            minhaArma.GetComponent <MudarPai> ().MudarMeuPai(maoEsquerda);
        }
        else
        {
            minhaArma.GetComponent <MudarPai> ().MudarMeuPai(maoDireita);
        }

        meuAnimator.SetInteger("armaId", minhaArma.armaId);

        //Colocar a arma criada no mesmo layer na mão dele, posi os inimigos estão em uma orderm de layer diferente da do jogador
        SpriteRenderer[] imagens = minhaArma.GetComponentsInChildren <SpriteRenderer> ();
        for (int i = 0; i < imagens.Length; i++)
        {
            imagens [i].sortingOrder = -3;
        }
    }