Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

Solucionado (ver solução)

erro

NullReferenceException: Object reference not set to an instance of an object Torre.Atira () (at Assets/scripts/Torre.cs:23) Torre.Update () (at Assets/scripts/Torre.cs:11)

professor me ajude o míssil não dispara só dispara se eu colocar no método update Instateate (projetilPreFab), mas se coloco atira vários misseis um após o outro.

9 respostas

Filipe, tudo bem ?

Abre um outro tópico para dentro do curso que está dando problema, por gentileza.

Abraço :D

Olá Filipe,

Posta aqui o código da sua classe Torre prá gente tentar entender o que pode estar acontecendo.

using UnityEngine; using System.Collections;

public class Torre : MonoBehaviour { public GameObject projetilprefab;

public float tempoDeRecarga = 0.1f; private float momentoDoUltimoDisparo;

// Use this for initialization void Update () { Atira (); }

private void Atira () {

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);

} } }

Olá Filipe,

Repare que o erro está acontecendo na linha 11, onde é feito o Instantiate(projetilprefab, ...). Isso significa que o Unity nesse momento não sabe o que é esse projetilprefab.

Para resolver isso você vai precisar associar o prefab do projétil com o seu objeto Torre na Unity. Para isso, selecione a Torre da cena e depois arraste o prefab do projétil para o campo Projetil Prefab da torre no Inspector.

Boa tarde, Jeferson eu fiz isso, na verdade foi o que imaginei, mas eu fui no inspetor da Torre arrastei o prefab para lá mas nada, contudo o jogo roda.

sempre mostra esta mensagem de erro na linha 26 GameObject pontoDeDisparo = this.transform.Find ("CanhaoDaTorre/PontoDeDisparo").gameObject;

o míssil aparece no jogo se eu escrever este codigo Instantiate (projetilprefab); no inicio mas mesmo assim o unity acusa que tem um erro. Me ajude

Obrigado!

Olá Filipe,

Você consegue subir o seu projeto no Dropbox e compartilhar aqui prá eu poder dar uma olhadinha?

vou tentar

solução

encontrei o erro, eu construí minha torre de modo separado ok, mas eu não coloquei os componentes da minha torre no gameobect fazio - chamado de "Torre".

Obrigado à todos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software