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; } }
// 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; } }