private void Atira(Inimigo inimigo) { float tempoAtual = Time.time; if (tempoAtual > momentoDoUltimoDisparo + tempoDeRecarga) { momentoDoUltimoDisparo = tempoAtual; GameObject pontoDeDisparo = this.transform.Find("CanhaoDaTorre/PontoDeDisparo").gameObject; Vector3 posicaoDoPontoDeDisparo = pontoDeDisparo.transform.position; //Instantiate(projetilPrefab, posicaoDoPontoDeDisparo, Quaternion.identity); GameObject projetilObject = (GameObject)Instantiate(projetilPrefab, posicaoDoPontoDeDisparo, Quaternion.identity); Missil missil = projetilObject.GetComponent <Missil>(); missil.DefineAlvo(inimigo); } }
// Instancia um míssil para ser disparado e passa informações sobre qual inimigo ele deverá seguir: private void Atira(Inimigo inimigo) { float tempoAtual = Time.time; if (tempoAtual > tempoUltimoDisparo + tempoRecarga) { tempoUltimoDisparo = tempoAtual; GameObject pontoDeDisparo = this.transform.Find("PontoDeDisparo").gameObject; Vector3 posicaoDisparo = pontoDeDisparo.transform.position; GameObject projetilObject = (GameObject)Instantiate(projetilPrefab, posicaoDisparo, Quaternion.identity); // Passa para o míssil o inimigo que ele deverá seguir: Missil missil = projetilObject.GetComponent <Missil> (); missil.DefineAlvo(inimigo); } }
private void Dispara() { GameObject alvo = EscolheAlvo(); if (alvo) { float tempoAtual = Time.time; if (tempoAtual > tempoUltimoDisparo + tempoDeRecarga) { tempoUltimoDisparo = tempoAtual; //pega o game object responsável pela posição do ponto de disparo dentro do canhao GameObject pontoDeDisparo = this.transform.Find("canhaoDaTorre/pontoDeDisparo").gameObject; //pega a posicao do gameobject Vector3 posicaoPontoDeDisparo = pontoDeDisparo.transform.position; //instancia o missel (prefab) na posicao do gameObject GameObject missilPrefab = Instantiate(projetilPrefab, posicaoPontoDeDisparo, Quaternion.identity); Missil missil = missilPrefab.GetComponent <Missil> (); missil.DefineAlvo(alvo); } } }