1
resposta

Interromper Scripts.

Boa tarde, com o código Time.timeScale = 0; eu paro o tempo porem no meu jogo eu tenho um pequeno script que faz a câmera andar sempre pra frente:

public class cameraTest : MonoBehaviour

{

    void Update ()
    {
        transform.Translate(.03f,0,0);
    }
}

e eu queria também interromper esse script assim que o meu objeto colidir, e por ventura outros scripts de loop, existe algum comando que eu possar dar pro meu script Diretor para dar um stop nos scripts necessários.

1 resposta

Oi Vinicius, tudo bom?

Não tem nenhum comando especifico para isso. O que eu faria é colocar um collider dentro do objeto câmera e no seu script cameraTest chamar o método OnTriggerEnter ou OnTriggerEnter2D dependendo de qual collider que vc utilizou.

Dessa forma o comportamento da câmera está contido em um único script e a manutenção do seu código fica mais fácil.

Se vc começar a acoplar todos os objetos do jogo com o Diretor Vc vai ter muitos problemas do tipo "Mexi em um ponto do jogo e outra parte quebrou" ou ainda, "Não sei de onde esse comportamento está vindo."

Uma coisa que eu mesmo faria diferente nesse projeto é fazer com que ao invés do avião ter que saber diretamente quem é o Diretor, eu faria ele mandar uma mensagem para algum sistema de Pub-sub avisando que ele colidiu com algo.

E o Diretor, assim que é iniciado na cena avisa para esse sistema de Pub-sub que ele quer ser notificado caso alguma mensagem do tipo "aviaoColidiu" seja lançada.

Não fiz isso no curso pois já tinha bastante conteúdo para ser abordado. E criar/explicar esse sistema de mensagens. ia deixar o curso muito comprido.