Transição de cenas - Como carregar outras cenas/fases do seu jogo

Поделиться
HTML-код
  • Опубликовано: 23 дек 2024

Комментарии •

  • @markondeslacerdaaraujo4242
    @markondeslacerdaaraujo4242 2 года назад +3

    Mano, que video incrível, você poderia fazer um video sobre o processo de criação de menu?

    • @MustacheGameStudioTV
      @MustacheGameStudioTV  2 года назад +2

      Oi, Markondes!
      Muito obrigado pelo comentário e por apoiar o canal. :D
      Sobre a sua sugestão, só para que eu entenda exatamente que tipo de vídeo você gostaria, ocê se refere à um vídeo ensinando como montar uma interface de Menu com algumas opções para selecionar (jogar, créditos e etc.) e mudar entre essas cenas?

    • @markondeslacerdaaraujo4242
      @markondeslacerdaaraujo4242 2 года назад

      @@MustacheGameStudioTV Olá, como montar uma interface de menu é a sugestão. Ótimo seus vídeos.

  • @mundoleojogos4759
    @mundoleojogos4759 3 месяца назад

    Muito obg cara, vc me ajudou muito, o tutorial ficou muito bom.

  • @aranalt7124
    @aranalt7124 10 месяцев назад +2

    Eu segui o tutorial, quando o personagem toca na porta ele não transita de nivel , só colidi, eu já tentei ativar desativar os colisores mas não tem solução.

    • @MustacheGameStudioTV
      @MustacheGameStudioTV  10 месяцев назад

      Olá! Você pode nos dar mais detalhes sobre o problema?
      1. Como estão configurados os Colliders do personagem e da porta? Algum deles está com a opção "Is Trigger" marcada?
      2. O que você quer dizer com "só colide"? Isso significa que o collider está impedindo o jogador de mover em direção à porta?

    • @aranalt7124
      @aranalt7124 10 месяцев назад

      só colidi" eu quero dizer que quando o personagem tem contato com a porta mas não funciona a transição de cena , no caso dos colisores serem ativados como o da porta, o personagem atravessa, e quando eu ativo o colisor do proprio personagem ele atravessa o chão da cena.

    • @MustacheGameStudioTV
      @MustacheGameStudioTV  10 месяцев назад

      Entendi! Precisamos ter certeza de que o contato entre os dois colliders está sendo identificado.
      No vídeo, nós adicionamos um método chamado "OnTriggerEnter2D" no script da Porta. Você pode adicionar o comando Debug.Log no método OnTriggerEnter2D para confirmarmos se o contato está sendo identificado corretamente?
      O método OnTriggerEnter2D ficará assim para o teste:
      void OnTriggerEnter2D(Collider2D collider) {
      Debug.Log("O objeto " + collider + " encostou na porta.");
      }
      Se o contato estiver sendo identificado carregamente, uma mensagem será exibida no Console da Unity, informando qual objeto entrou em contato com a porta. Caso nenhuma mensagem seja exibida, precisaremos revisar as configurações do Personagem e da Porta.

  • @cafe6787
    @cafe6787 8 месяцев назад

    Olá, Tenho um projeto com um canvas na minha primeira cena são botões que abrem paineis, status de personagem... mas não consigo fazer eles ficarem funcionais na cena nova

    • @MustacheGameStudioTV
      @MustacheGameStudioTV  8 месяцев назад

      Olá! Alguma mensagem de erro aparece no Console da Unity quando o problema acontece?
      Todos os Scripts e GameObjects necessários para o funcionamento desse Canvas também estão sendo levado para a outra cena?
      Se possível, mande aqui nos comentários o trecho do código que não está funcionando, para que possamos analisar.

    • @cafe6787
      @cafe6787 8 месяцев назад

      @@MustacheGameStudioTV Copiei o Canvas e todos seus objetos para a proxima cena manualmente. Só usei o DontDestroy no jogador, as informações do jogador carregam pra proxima cena, mas alguns detalhes como minha barra de vida, barra de energia somem do meu painel de status. um outro painel acessa as informações carregadas normalmente.

    • @MustacheGameStudioTV
      @MustacheGameStudioTV  8 месяцев назад

      ​@@cafe6787, algum erro é exibido no Console da Unity quando isso acontece? Ou apenas algumas elementos da UI somem, mas o restante do jogo funciona normalmente sem erro?
      Como esse canvas está configurado? Qual é o render mode da câmera? Overlay, Camera Space ou World Space?

    • @cafe6787
      @cafe6787 8 месяцев назад

      @@MustacheGameStudioTV NullReferenceException: Object reference not set to an instance of an object
      UIManager.AtualizarUIPersonagem () (at Assets/Scripts/Managers/UIManager.cs:95)
      UIManager.Update () (at Assets/Scripts/Managers/UIManager.cs:89)

    • @MustacheGameStudioTV
      @MustacheGameStudioTV  8 месяцев назад

      ​​@@cafe6787, de acordo com a mensagem de erro, alguma variável com valor null está sendo usada na linha 95 do script UIManager.
      Você pode mandar aqui nos comentários o conteúdo da linha 95 do UIManager?

  • @venizzioherrera5216
    @venizzioherrera5216 2 года назад +1

    Grande ajuda, meu projeto estava parado por causa de uma transição de cenas bugada e que agora esta funcional

    • @MustacheGameStudioTV
      @MustacheGameStudioTV  2 года назад

      Maravilha! Que bom que conseguimos te ajudar. Se tiver qualquer dúvida, pode mandar nos comentários. :D

  • @guerme
    @guerme Год назад

    Como faço pra jogar meu player em outra cena? É necessário criar prefab?

    • @MustacheGameStudioTV
      @MustacheGameStudioTV  Год назад +2

      Opa! Existem algumas formas de fazer isso. Neste exemplo eu adicionei o meu personagem em todas as cenas. O jeito mais fácil de fazer isso é criando um prefab e reutilizando ele nas demais cenas.
      Outra forma de migrar um GameObject, seja ele qual for, para outra cena é usar o método DontDestroyOnLoad, que como o próprio nome sugere, não destrói um objeto após uma nova cena ter sido carregada. Para utilizar o DontDestroyOnLoad basta executar o seguinte comando no método Start do script do seu personagem:
      DontDestroyOnLoad (this.gameObject);
      Dessa forma, seu personagem será mantido no jogo mesmo após o carregamento de uma nova cena. Nesse caso, pode ser necessário reposicionar ele antes de iniciar a partida na nova cena.

    • @guerme
      @guerme Год назад

      @@MustacheGameStudioTV Muito obrigado man

    • @MustacheGameStudioTV
      @MustacheGameStudioTV  Год назад +1

      @@guerme, se tiver qualquer dúvida, ou sugestão de vídeo, pode mandar nos comentários. :D

    • @guerme
      @guerme Год назад

      @@MustacheGameStudioTV Só mais uma dúvida, eu posso simplesmente copiar e colar o meu player em outra cena?

    • @MustacheGameStudioTV
      @MustacheGameStudioTV  Год назад +1

      @@guerme pode, sim.
      O problema dessa abordagem é que qualquer modificação que você fizer no seu personagem, precisará ser replicada/refeita em todas as outras cenas.
      A vantagem de usar prefab nessas situações é que fica mais fácil alterar o objeto, permitindo que a alteração seja feita uma única vez e já impactando todas as cenas onde esse objeto é utilizado.

  • @mateusjanuario3289
    @mateusjanuario3289 10 месяцев назад

    salve mano, tenho uma duvida, fiz um menu de pause e quando volto a cena do jogo como um resumo, ele simplesmente zera tudo, como se tivesse resetado o jogo. no meu caso, no jogo tem moedas, metros percorridos e vida, todas vez q entro no menu, tudo volta como se tivesse acabado de iniciar o game. tem como me dar uma força?????

    • @MustacheGameStudioTV
      @MustacheGameStudioTV  10 месяцев назад

      Oi, Mateus!
      No seu caso, o menu de pause é uma cena separa da cena do jogo?

    • @mateusjanuario3289
      @mateusjanuario3289 10 месяцев назад

      correto
      @@MustacheGameStudioTV

    • @mateusjanuario3289
      @mateusjanuario3289 10 месяцев назад

      fica separado, como se fosse uma nova fase

    • @mateusjanuario3289
      @mateusjanuario3289 10 месяцев назад

      @@MustacheGameStudioTV saberia me ajudar com esse problema man?

    • @MustacheGameStudioTV
      @MustacheGameStudioTV  10 месяцев назад +2

      Oi, Mateus!
      Pelo descrição do problema, me parece que o que está acontecendo é o seguinte:
      Como o seu jogo e o menu são cena separadas, você provavelmente está carregando a cena do menu utilizando o modo de carregamento padrão, que é o modo "Single", onde somente uma cena fica ativa por vez. Dessa forma, quando você carrega a cena do Menu, a cena do jogo é automaticamente descarregada. A partir do momento em que você decide voltar para o jogo, a cena do jogo é carregada novamente, do zero, recriando todos os objetos que a compõem, inclusive as moedas que eventualmente haviam sido coletadas.
      A solução pode ser simples, dependendo de como as suas cenas (Menu e Jogos) estão sendo construídos.
      Caso o seu Menu seja somente uma tela (UI/Canvas), podemos pensar na possibilidade de manter o menu e o jogo em uma mesma cena, ativando e desativando a interface do jogo e do menu quando necessário.
      Outra possibilidade é manter o jogo e o menu em cenas separadas, da forma que está hoje, porém, alterar a forma como o carregamento/descarregamento dessas cenas é realizados. Para carregar uma cena na Unity, nós podemos usar o método SceneManager.LoadScene("nomeDaCena"), informando somente o nome da cena que queremos carregar, como parâmetro. Porém, esse mesmo método permite que um segundo parâmetro seja informado.
      Esse segundo parâmetro é o modo em que a cena deve ser carregada. Anterior eu citei que o modo padrão é o modo Single, onde somente uma cena fica ativa por vez. Além desse modo, também existe o modo "Additive", que permite que duas ou mais cenas sejam carregas e permaneçam ativas simultaneamente. Nesse caso, basta executar o carregamento da cena da seguinte forma:
      SceneManager.LoadScene("nomeDaCena", LoadSceneMode.Additive);
      Como as duas cenas estarão ativas, isso significa que ambas as cenas estarão sendo processadas, permitindo que o jogador continue jogando, mesmo quando o menu estiver visível. Para resolver isso, você precisará gerenciar quais GameObjects estarão ativos no seu jogo, ativando e desativando os objetos das cenas do Menu e do Jogo.
      Em resumo, você pode manter as duas cenas carregadas ao mesmo tempo, para que elas não precisem ser destruídas (descarregadas) e construídas novamente durante a transição de cena. Porém, precisará garantir que o GameObjects do Menu estarão desativando enquanto o jogador estiver interagindo com a cena do Jogo, e desativar os GameObjects do Jogo, quando o jogador estiver interagindo com o Menu.
      Como a explicação acabou sendo muito grande, caso tenha qualquer dúvida sobre esse processo, pode perguntar.
      Vamos aproveitar para adicionar na nossa lista de próximos vídeos, um conteúdo sobre carregamento aditivo de cenas. Muito obrigado pela pergunta.

  • @EncorEstudiosTec
    @EncorEstudiosTec 3 месяца назад

    parabens

  • @buubsk
    @buubsk 10 месяцев назад

    salvou pks

    • @MustacheGameStudioTV
      @MustacheGameStudioTV  10 месяцев назад

      Oi! Muito obrigado por apoiar o canal!
      Qualquer dúvida, pode mandar aqui nos comentários.

  • @misterkame6634
    @misterkame6634 9 месяцев назад

    fez até um burro como eu entender

    • @MustacheGameStudioTV
      @MustacheGameStudioTV  9 месяцев назад

      Oi, Mister Kame!
      Ficamos felizes em saber que o vídeo te ajudou a entender. :D
      Se tiver qualquer dúvida, ou sugestão de vídeo, pode mandar aqui nos comentários.