Solucionado (ver solução)
Solucionado
(ver solução)
7
respostas

Dúvida sobre o C#

Olá! Gostaria de saber o por quê de igualarmos o "meuAudioSource" a instancia na linha de código abaixo. Obrigada desde já!

    private AudioSource meuAudioSource; 
    public static AudioSource instancia; 

    void Awake() 
    {
        //SINGLETON BÁSICO - (pattern)
        meuAudioSource = GetComponent<AudioSource>();
        instancia = meuAudioSource; //AQUI!!!!!!

    }
7 respostas

Oi, Maria Eduarda, tudo bem?

A primeira variável captura o GetComponent, depois a gente tem que passar esse valor para a variável instancia que é o Singleton em si. Ele que é a variável importante e que deve receber o componente.

Mas é o valor da "instancia" dentro do void start que os outros scripts tem acesso? Se sim, entendo que ela é uma variável do tipo AudioSource, mas ela está dentro de um void private, e tem valor de um AudioSource específico, não?

Ela foi preenchida num método estático mas seu valor é public e static por isso ela fica disponível para todos os scripts. Como esse valor foi atribuído pra ela não faz muita diferença, sabe?

Não afeta o fato do AudioClip desse AudioSource ser preenchido na Unity pela música tema do jogo?

solução!

Não nesse caso. Como usamos o PlayOneShot ele consegue tocar em sequencia sem interagir muito com o AudioSource então não altera nada nele.

Mas só porque usamos somente o PlayOneShot

Entendi!! Obrigada :D

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