O erro persiste de depois que eu faz que o professor fez na aula, vou mandar os erro que estão mostrando no unity: " "SetDestination" can only be called on an active agent that has been placed on a NavMesh. UnityEngine.AI.NavMeshAgent:SetDestination(Vector3) ControlasBoss:Update() (at Assets/Scripts/Gameplay/ControlasBoss.cs:37) "
" NullReferenceException: Object reference not set to an instance of an object GeradorBoss.Update () (at Assets/Scripts/Gameplay/GeradorBoss.cs:26) "
aqui meu código da classes GerardoBoss:
public class GeradorBoss : MonoBehaviour{
private float tempoProximaGeracao = 0;
public float tempoEntreGeracoes = 60;
public GameObject BossPrefab;
public ReservaFixa reservaBoss;
private ControlaInterface scriptControlaInteface;
public Transform[] PosicoesPossiveisGeracao;
private Transform jogador;
// Use this for initialization
private void Start(){
tempoProximaGeracao = tempoEntreGeracoes;
scriptControlaInteface = GameObject.FindObjectOfType(typeof(ControlaInterface)) as ControlaInterface;
jogador = UnityEngine.GameObject.FindWithTag("Jogador").transform;
}
// Update is called once per frame
void Update(){
if(Time.timeSinceLevelLoad > tempoProximaGeracao){
if(this.reservaBoss.TemObjeto()){
Vector3 posicaoCriacao = CalcularPosicaoDistance();
var boss = this.reservaBoss.PegarObjeto();
var controleBoss = boss.GetComponent<ControlasBoss>();
controleBoss.SetPosicao(posicaoCriacao);
scriptControlaInteface.AvisoChefeInterface();
tempoProximaGeracao = Time.timeSinceLevelLoad + tempoEntreGeracoes;
}
}
}
Vector3 CalcularPosicaoDistance (){
Vector3 posicaoMaiorDistancia = Vector3.zero;
float maiorDistancia = 0;
foreach (Transform posicao in PosicoesPossiveisGeracao){
float distanciaEntreJogador = Vector3.Distance(posicao.position, jogador.position);
if (distanciaEntreJogador > maiorDistancia){
maiorDistancia = distanciaEntreJogador;
posicaoMaiorDistancia = posicao.position;
}
}
return posicaoMaiorDistancia;
}
}