[Duvida] Sobre cena de carregamento.
+2
debBoy
ismarspn
6 participantes
Página 1 de 1
[Duvida] Sobre cena de carregamento.
Queria saber qual o real motivo para criar uma cena de load, deixaria o jogo mais leve? ou é só uma tela para o jogador apenas ver o progresso de carregamento mesmo? desde já agradeço
ismarspn- Programador
- PONTOS : 3999
REPUTAÇÃO : 147
Idade : 30
Áreas de atuação : Unity, Photoshop, Illustrator, After Effects, Adobe Flash
Respeito as regras :
Re: [Duvida] Sobre cena de carregamento.
A cena load eu utilizo para fazer um "Render" de todo o jogo antes dele começa , assim ele fica mais leve
debBoy- Iniciante
- PONTOS : 2917
REPUTAÇÃO : 2
Respeito as regras :
Re: [Duvida] Sobre cena de carregamento.
A cena load eu utilizo para fazer um "Render" de todo o jogo antes dele começa , assim ele fica mais leve
debBoy- Iniciante
- PONTOS : 2917
REPUTAÇÃO : 2
Respeito as regras :
Re: [Duvida] Sobre cena de carregamento.
Também acho útil na transição entre cenas. No meu jogo do menu de login para a cena principal, sem o loading eu teria uma tela branca de uns 5 segundos.
Re: [Duvida] Sobre cena de carregamento.
Sem a tela de load o usuário tem a a ideia que o jogo esta travado.
kalielson- ProgramadorMaster
- PONTOS : 3573
REPUTAÇÃO : 120
Idade : 40
Áreas de atuação : Mestrando em Computação
Respeito as regras :
Re: [Duvida] Sobre cena de carregamento.
Ola,kalielson escreveu:Sem a tela de load o usuário tem a a ideia que o jogo esta travado.
Sim, em um de nosso jogos mobile a primeira reclamação foi que parecia que o jogo travava. Apos isso começamos a utilizar uma imagem de load. Um conselho que deixo eh pra cuidar ao usar o LoadSceneAsync pois em mobile se pode correr o risco de estourar o limite de memoria disponivel para o aplicativo, esse limite varia de SO e quantidade de memoria no device. Um exemplo, nosso game em certa epoca durante o load entre uma cena e outra chegava a ocupar 400mb de Ram, o que fazia o nosso game ser reiniciado, principalmente em devices com menos de 1g de ram.
Hoje utilizo um cena de loading, onde carrego as informaçoes e depois mudo de cena.
Altamir- Iniciante
- PONTOS : 3066
REPUTAÇÃO : 10
Idade : 40
Áreas de atuação : Programação, C# and PHP
Respeito as regras :
Re: [Duvida] Sobre cena de carregamento.
Altamir escreveu:Ola,kalielson escreveu:Sem a tela de load o usuário tem a a ideia que o jogo esta travado.
Sim, em um de nosso jogos mobile a primeira reclamação foi que parecia que o jogo travava. Apos isso começamos a utilizar uma imagem de load. Um conselho que deixo eh pra cuidar ao usar o LoadSceneAsync pois em mobile se pode correr o risco de estourar o limite de memoria disponivel para o aplicativo, esse limite varia de SO e quantidade de memoria no device. Um exemplo, nosso game em certa epoca durante o load entre uma cena e outra chegava a ocupar 400mb de Ram, o que fazia o nosso game ser reiniciado, principalmente em devices com menos de 1g de ram.
Hoje utilizo um cena de loading, onde carrego as informaçoes e depois mudo de cena.
Olá, e qual dica você me daria para fazer esse esquema?
ismarspn- Programador
- PONTOS : 3999
REPUTAÇÃO : 147
Idade : 30
Áreas de atuação : Unity, Photoshop, Illustrator, After Effects, Adobe Flash
Respeito as regras :
Re: [Duvida] Sobre cena de carregamento.
Bem, depende muito de como esta a sua estrutura.
Tenho Resorces onde guardo IAs, com valores e texturas. Antigamente eu carregava um conjunto de mais IAs, selecionava de acordo com a cena e level do player. Agora ao invés disto faço essas seleções
no loading. Assim economizo memoria e processamento no start da cena. Claro que isso depende da complexidade do carregamento. Tipo, pode usar AssetBundles para baixar de acordo com o que for necessario, o que eh o mais indicado. Tando que andei vendo que o Resorce.Load vai vir a ser substituido na 5.5 pelo AssetBundles.
Mas enfim,
Em meu caso, utilizo um objeto que transita entre as cenas.
uso pra carregar coisa que vou precisar em cenas, tipo IAs de são pegas de acordo com o level, Poderia ser heroi ou inimigo do level,
assim quando entra na cena ja esta tudo pre carregado,
Desculpa o codigo mas digitei ele aqui e pode ter erros....
Mas como falei depende muito de como esta tua arquitetura.
Tenho Resorces onde guardo IAs, com valores e texturas. Antigamente eu carregava um conjunto de mais IAs, selecionava de acordo com a cena e level do player. Agora ao invés disto faço essas seleções
no loading. Assim economizo memoria e processamento no start da cena. Claro que isso depende da complexidade do carregamento. Tipo, pode usar AssetBundles para baixar de acordo com o que for necessario, o que eh o mais indicado. Tando que andei vendo que o Resorce.Load vai vir a ser substituido na 5.5 pelo AssetBundles.
Mas enfim,
Em meu caso, utilizo um objeto que transita entre as cenas.
- Código:
public class LoadingInfo : MonoBehaviour
{
public static LoadingInfo Instance;
[SerializeField]
public SCENE_NAMES NextSceneName; //quando click select scene altero tem um enum com nomes de cenas - nao eh o ideal., mas atende
string SceneName;
private AsyncOperation async;
void Awake()
{
if (Instance == null)
{
Instance = this;
DontDestroyOnLoad(this.gameObject);
}
else
{
Destroy(this.gameObject);
return;
}
}
//chamado na cena de Loading....
public void Initialize()
{
StartCoroutine(Init());
}
private IEnumerator Init()
{
//carregar coisas que serão utilizadas em nova cena, liberando processamento no start da cena
yield return null;
Resources.UnloadUnusedAssets();
if (SceneManager.GetActiveScene().name == "Loading")
{
async = SceneManager.LoadSceneAsync(SceneName);
while (!async.isDone)
{
//aqui podeira ter barra/animação de loading ou alguma outra coisa.
yield return null;
}
}
}
}
uso pra carregar coisa que vou precisar em cenas, tipo IAs de são pegas de acordo com o level, Poderia ser heroi ou inimigo do level,
assim quando entra na cena ja esta tudo pre carregado,
Desculpa o codigo mas digitei ele aqui e pode ter erros....
Mas como falei depende muito de como esta tua arquitetura.
Altamir- Iniciante
- PONTOS : 3066
REPUTAÇÃO : 10
Idade : 40
Áreas de atuação : Programação, C# and PHP
Respeito as regras :
Re: [Duvida] Sobre cena de carregamento.
No caso desse while, eu poderia retira-lo caso eu não tenha barra de progresso? ou é recomendável deixa-la mesmo assim?
ismarspn- Programador
- PONTOS : 3999
REPUTAÇÃO : 147
Idade : 30
Áreas de atuação : Unity, Photoshop, Illustrator, After Effects, Adobe Flash
Respeito as regras :
Re: [Duvida] Sobre cena de carregamento.
Eu recomendaria você deixar, pois o carregamento pode levar vários Frames, o que pode dar a sensação de travada na animação que for usar.ismarspn escreveu:No caso desse while, eu poderia retira-lo caso eu não tenha barra de progresso? ou é recomendável deixa-la mesmo assim?
Altamir- Iniciante
- PONTOS : 3066
REPUTAÇÃO : 10
Idade : 40
Áreas de atuação : Programação, C# and PHP
Respeito as regras :
Re: [Duvida] Sobre cena de carregamento.
Obrigado cara, ajudou bastante :D
ismarspn- Programador
- PONTOS : 3999
REPUTAÇÃO : 147
Idade : 30
Áreas de atuação : Unity, Photoshop, Illustrator, After Effects, Adobe Flash
Respeito as regras :
Re: [Duvida] Sobre cena de carregamento.
Massa. Praticamente tudo que aprendi sobre a Unity vem deste fórum e do Youtube. Por isso resolvi começar ajudar com o pouco que aprendi :D .ismarspn escreveu:Obrigado cara, ajudou bastante :D
Altamir- Iniciante
- PONTOS : 3066
REPUTAÇÃO : 10
Idade : 40
Áreas de atuação : Programação, C# and PHP
Respeito as regras :
Re: [Duvida] Sobre cena de carregamento.
Entendo, eu também era bastante ativo aqui... mas aconteceu alguns problemas pessoais e acabei aparecendo menos, mas agora to começando a voltar, até comecei um projeto e to tentando deixar o mais perfeito possivel ao meu ver rsrsrs
ismarspn- Programador
- PONTOS : 3999
REPUTAÇÃO : 147
Idade : 30
Áreas de atuação : Unity, Photoshop, Illustrator, After Effects, Adobe Flash
Respeito as regras :
Re: [Duvida] Sobre cena de carregamento.
Olha esse script para tempo de mudar de cena eu uso esse
- Código:
using UnityEngine;
using System.Collections;
public class TEMPOCENA : MonoBehaviour {
private float Cronometro;
public int Tempo;
public string Cena;
void Update () {
Cronometro += Time.deltaTime;
if (Cronometro >= Tempo) {
Application.LoadLevel (Cena);
}
}
}
Tópicos semelhantes
» Duvida sobre O Carregamento da Cena no MenuPauseAvançado
» Bug de carregamento de cena
» CENA DE CARREGAMENTO COM IMAGENS
» [TUTORIAL] Cena inicial de CARREGAMENTO, creditos, logo, etc [UNITY 5]
» DÚVIDA - Fazer uma cena animada
» Bug de carregamento de cena
» CENA DE CARREGAMENTO COM IMAGENS
» [TUTORIAL] Cena inicial de CARREGAMENTO, creditos, logo, etc [UNITY 5]
» DÚVIDA - Fazer uma cena animada
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos