1
resposta

Meus Obstaculos não reiniciam igual o Avião. (Por algum motivo voltou a funcionar mas o aviso continua no VisualStudio

Segue meu código junto ao aviso:

public class Diretor : MonoBehaviour { [SerializeField] private GameObject ImagemGameOver;

[SerializeField]
private GameObject FundoGameOver;

private Avião Aviao;

[System.Obsolete]
private void Start()
{
    Aviao = GameObject.FindObjectOfType<Avião>();
}

public void FinalizarJogo()
{
    Time.timeScale = 0;
    //habilitar a imagem de "GameOver"
    ImagemGameOver.SetActive(true);
    FundoGameOver.SetActive(true);
}

public void ReiniciarJogo()
{
    ImagemGameOver.SetActive(false);
    Time.timeScale = 1;
    Aviao.Reiniciar(Aviao.GetPosiçãoInicial());
    DestruirObstaculos();
}

public void DestruirObstaculos()
{
    Obstaculo[] obstaculos = GameObject.FindObjectsOfType<Obstaculo>();
    foreach (Obstaculo obstaculo in obstaculos)
    {
        obstaculo.Destruir();
    }
}

}

Gravidade Código Descrição Projeto Arquivo Linha Estado de Supressão Aviso CS0618 "Object.FindObjectsOfType()" é obsoleto: "Object.FindObjectsOfType has been deprecated. Use Object.FindObjectsByType instead which lets you decide whether you need the results sorted or not. FindObjectsOfType sorts the results by InstanceID but if you do not need this using FindObjectSortMode.None is considerably faster." Assembly-CSharp C:\Users\Kevin Martins\Documents\1- Unity Geral\2- Projetos Unity\Desafio nas alturas\Assets\Scripts\Diretor.cs 39 Ativo

1 resposta

Olá Pedro!

Acredito que os erros nos obstáculos foram corrigidos, certo?

Quanto ao aviso de erro, ele indica que você está usando um método obsoleto em seu código, o que significa que ele está desatualizado e não é mais recomendado para uso futuro, mas ainda funcionará normalmente por enquanto.

Para corrigir o aviso, a própria mensagem do console fornece uma sugestão de como corrigir isso. Substitua a chamada de Object.FindObjectsOfType() por Object.FindObjectsByType e, se necessário, adicione o parâmetro FindObjectSortMode.None.

// Antes
var objetosEncontrados = Object.FindObjectsOfType<SeuTipoDeObjeto>();

// Depois
var objetosEncontrados = Object.FindObjectsByType<SeuTipoDeObjeto>(FindObjectSortMode.None);

Espero ter ajudado e reforço que em casos de dúvidas, conte sempre com o fórum da comunidade Alura! Bons estudos!

Sucesso

Um grande abraço e até mais!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

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