Boa tarde a linha scripControlaInterface = FindObjectsOfType(typeof(ControlaInterface)) as ControlaInterface; está dando erro script completo inimigo
public class ControlaInimigo : MonoBehaviour
{
public GameObject jogador;
private MovimentoPersonagem MovimentaInimigo;
private AnimacaoPersonagem animacaoInimigo;
private status statusInimigo;
private Vector3 posicaoAleatoria;
private Vector3 direcao;
private float contadorVagar;
private float tempoEntrePosicoesAleatorias = 4;
private float porcentagemGerarKitMedico = 0.1f;
public GameObject KitMedicopref;
private ControlaInterface scripControlaInterface;
// Start is called before the first frame update
void Start()
{
jogador = GameObject.FindWithTag("Jogador");
AleatorizarZumbi();
MovimentaInimigo = GetComponent<MovimentoPersonagem>();
animacaoInimigo = GetComponent<AnimacaoPersonagem>();
statusInimigo = GetComponent<status>();
scripControlaInterface = FindObjectsOfType(typeof(ControlaInterface)) as ControlaInterface;
}
// Update is called once per frame
void FixedUpdate()
{
float distancia = Vector3.Distance(transform.position, jogador.transform.position);
MovimentaInimigo.RotacionarPersonagens(direcao);
animacaoInimigo.Movimentar(direcao.magnitude);
if(distancia > 15)
{
Vagar();
}
else if (distancia > 2.5)
{
direcao = jogador.transform.position - transform.position;
MovimentaInimigo.Movimentar(direcao,statusInimigo.velocidade);
animacaoInimigo.atacar(false);
}
else
{
direcao = jogador.transform.position - transform.position;
animacaoInimigo.atacar(true);
}
}
void Vagar()
{
contadorVagar -= Time.deltaTime;
if(contadorVagar <= 0)
{
posicaoAleatoria = aleatorizarPosicao();
contadorVagar += tempoEntrePosicoesAleatorias;
}
bool ficouPertoOSuficiente = Vector3.Distance(transform.position, posicaoAleatoria) <= 0.05;
if (ficouPertoOSuficiente == false)
{
direcao = posicaoAleatoria - transform.position;
MovimentaInimigo.Movimentar(direcao, statusInimigo.velocidade);
}
}
Script interface
public class ControlaInterface : MonoBehaviour
{
private ControladorJogador scriptControladorJogador;
public Slider SliderVidaJogador;
public GameObject PainelDeGameOver;
public Text TempoDeSobre;
public Text TextoPontuacaoMaxima;
private float TempoPontuacaoSalva;
private int quantidadeDeZumbisMortos;
// Start is called before the first frame update
void Start()
{
scriptControladorJogador = GameObject.FindWithTag("Jogador")
.GetComponent<ControladorJogador>();
SliderVidaJogador.maxValue = scriptControladorJogador.statusJogador.vida;
AtualizarSliderVidaJogador();
Time.timeScale = 1;
TempoPontuacaoSalva = PlayerPrefs.GetFloat("PontuaçãoMaxima");
}
// Update is called once per frame
void Update()
{
}
public void AtualizarSliderVidaJogador()
{
SliderVidaJogador.value = scriptControladorJogador.statusJogador.vida;
}
public void AtualizarQuantidadeZumbiMortos()
{
quantidadeDeZumbisMortos++;
}
public void GameOver()
{
PainelDeGameOver.SetActive(true);
Time.timeScale = 0;
int minutos = (int)(Time.timeSinceLevelLoad / 60);
int segundos = (int)(Time.timeSinceLevelLoad % 60);
TempoDeSobre.text = "Você sobrevivieu " + minutos + " min e " + segundos +" s";
AjustarPontuacaoMaxima(minutos,segundos);
}
void AjustarPontuacaoMaxima(int min, int seg)
{
if(Time.timeSinceLevelLoad > TempoPontuacaoSalva)
{
TempoPontuacaoSalva = Time.timeSinceLevelLoad;
TextoPontuacaoMaxima.text = string.Format("Seu melhor tempo é {0} min e {1} s", min, seg);
PlayerPrefs.SetFloat("PontuaçãoMaxima", TempoPontuacaoSalva);
}
if (TextoPontuacaoMaxima.text == "")
{
min = (int)TempoPontuacaoSalva / 60;
seg = (int)TempoPontuacaoSalva % 60;
TextoPontuacaoMaxima.text = string.Format("Seu melhor tempo é {0} min e {1} s", min, seg);
}
}
public void Reiniciar()
{
SceneManager.LoadScene("1");
}
}