Loja no game, duvidas sobre voltar para a cena após usar a loja.
2 participantes
Página 1 de 1
Loja no game, duvidas sobre voltar para a cena após usar a loja.
Olá pessoal, já tenho a loja no game, a minha duvida é como voltar para a cena que eu estava depois que comprar o item na loja, ou seja, a loja tem uma cena só para ela, com cavas e tudo, então quando eu ir para a loja vou estar saindo da cena do jogo e indo para a cena loja, mas aí não sei como voltar a cena que eu estava novamente pois tenho muitos níveiss no jogo. Consegui colocando a loja no canvas de todos os níveis, mas desse jeito o jogo acaba ficando muito grande, pois estou repetindo a loja em cada nível do jogo. Por favor, me ajudem.
acefogo- Avançado
- PONTOS : 1549
REPUTAÇÃO : 9
Respeito as regras :
Re: Loja no game, duvidas sobre voltar para a cena após usar a loja.
Você não precisa sair da cena do jogo pra ir pra loja, basta carregar a cena da loja de forma aditiva e alterar a ordem do canvas pra renderizar sobre tudo da outra cena.
pesquise no Google por "Unity LoadScene aditive" e "unity canvas order"
pesquise no Google por "Unity LoadScene aditive" e "unity canvas order"
Fagner- Moderador
- PONTOS : 4442
REPUTAÇÃO : 667
Áreas de atuação : Modelagem 3D, Programação.
Respeito as regras :
Re: Loja no game, duvidas sobre voltar para a cena após usar a loja.
Valeu Fagner, vou pesquisar. Resolvendo esse problema meu jogo estará quase pronto!
acefogo- Avançado
- PONTOS : 1549
REPUTAÇÃO : 9
Respeito as regras :
Re: Loja no game, duvidas sobre voltar para a cena após usar a loja.
Os vídeos que achei sobre additive São tudo em ingles, ai vi uma forma de fazer colocando a loja dentro de um objeto vazio e destruindo ela depois de usar, mas na hora destruir aparece NO CAMERA RENDERING
acefogo- Avançado
- PONTOS : 1549
REPUTAÇÃO : 9
Respeito as regras :
Re: Loja no game, duvidas sobre voltar para a cena após usar a loja.
Montei um exemplo pra ti, as cenas de level não tem nada de especial, apenas a cena da loja não possui uma câmera e tem o sort order do canvas com um valor maior que 0 (usei 100).
Sobre a mensagem da câmera, você pode deixar uma na cena se quiser, só pro editor não exibir esse erro, mas ter uma câmera extra tem um custo de performance, então eu recomendo que coloque a tag EditorOnly nessa câmera, ela ainda vai remover a mensagem da tela, mas não será inclusa na build do jogo, a Unity remove tudo que tem essa tag antes de gerar o apk/.exe
Pra chamar a loja, percorro a lista de cenas carregadas no momento, checando se a loja já está carregada, se estiver eu desativo e vice versa.
Aqui está o projeto, se quiser dar uma olhada como o resto foi configurado.
https://drive.google.com/file/d/1Fb3e-MWtt0cHIKV-kAOydG7gH0DUH3cr/view?usp=sharing
Sobre a mensagem da câmera, você pode deixar uma na cena se quiser, só pro editor não exibir esse erro, mas ter uma câmera extra tem um custo de performance, então eu recomendo que coloque a tag EditorOnly nessa câmera, ela ainda vai remover a mensagem da tela, mas não será inclusa na build do jogo, a Unity remove tudo que tem essa tag antes de gerar o apk/.exe
Pra chamar a loja, percorro a lista de cenas carregadas no momento, checando se a loja já está carregada, se estiver eu desativo e vice versa.
- Código:
public void CarregarLoja()
{
SceneManager.LoadSceneAsync("Loja", LoadSceneMode.Additive);
}
public void DescarregarLoja()
{
SceneManager.UnloadSceneAsync("Loja", UnloadSceneOptions.None);
}
private void Update()
{
if (Input.GetKeyDown(KeyCode.Escape))
{
bool lojaCarregada = false;
for (int i = 0; i < SceneManager.sceneCount; i++)
{
if (SceneManager.GetSceneAt(i).name == "Loja")
{
lojaCarregada = true;
}
}
if (lojaCarregada)
{
DescarregarLoja();
}
else
{
CarregarLoja();
}
}
}
Aqui está o projeto, se quiser dar uma olhada como o resto foi configurado.
https://drive.google.com/file/d/1Fb3e-MWtt0cHIKV-kAOydG7gH0DUH3cr/view?usp=sharing
Fagner- Moderador
- PONTOS : 4442
REPUTAÇÃO : 667
Áreas de atuação : Modelagem 3D, Programação.
Respeito as regras :
Re: Loja no game, duvidas sobre voltar para a cena após usar a loja.
Antes de ver sua resposta, achei um vídeo em inglês e consegui algo quase igual ao seu e deu certo, a diferença é que não fiz a checagem da loja carregada, veja:
Sou grato mais uma vez. Tenho outro problema agora, mas como é assunto diferente vou abrir um novo tópico.
- Código:
public void chamaLoja() // aqui adiciono em um botão para abrir a loja
{
Time.timeScale = 0;
SceneManager.LoadSceneAsync("Loja", LoadSceneMode.Additive); // no lugar de loja pode ser qualquer outra cena tipo game over, etc...
}
public void fechaLoja() // aqui adiciono em um botão para fechar a loja
{
RestartGame();
Time.timeScale = 1;
SceneManager.UnloadSceneAsync("Loja", UnloadSceneOptions.None);
}
Sou grato mais uma vez. Tenho outro problema agora, mas como é assunto diferente vou abrir um novo tópico.
acefogo- Avançado
- PONTOS : 1549
REPUTAÇÃO : 9
Respeito as regras :
Tópicos semelhantes
» Loja no inicio da cena, sem que apareça novamente nos restarts da cena
» Loja de roupa para personagem 2D
» Manter a última posic de objetos após sair e voltar de cena
» [TUTORIAL] Como Criar uma Loja Virtual e WebSite para Seu Jogo Gratis
» [RESOLVIDO] Duvidas sobre dar restart na cena com Scene Management
» Loja de roupa para personagem 2D
» Manter a última posic de objetos após sair e voltar de cena
» [TUTORIAL] Como Criar uma Loja Virtual e WebSite para Seu Jogo Gratis
» [RESOLVIDO] Duvidas sobre dar restart na cena com Scene Management
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos