Loading cronometrado
2 participantes
Página 1 de 1
Loading cronometrado
Eu quero que a tela de Loading tenha o tempo que eu decidir (até pq meu app é leve, a tela de carregamento dura em média 1 segundo), então queria que durasse o tempo que eu definisse
Se puderem fazer isso modificando o meu script
Se puderem fazer isso modificando o meu script
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Loading : MonoBehaviour {
[Header("Cena pós Carregamento")]
public string proximaCena;
public bool loading;
[Header("Configuração das Texturas")]
public Texture background;
public Texture barraDeProgresso;
public string loadTxt;
public Color corDoTexto;
public Font fonte;
[Header("Configuração de Dimensões")]
[Range(0.5f,3.0f)]
public float tamanhoDoTexto;
[Range(1,10)]
public int larguraDaBarra;
[Range(1,10)]
public int alturaDaBarra;
[Range(-4.5f,4.5f)]
public float deslocarBarra;
[Range(-8,4)]
public float deslocarTextoX;
[Range(-4.5f,4.5f)]
public float deslocarTextoY;
private bool mostrarCarregamento = false;
private int progresso = 0;
void Update () {
if (loading == true) {
StartCoroutine(CenaDeCarregamento(proximaCena));
}
}
IEnumerator CenaDeCarregamento (string cena){
mostrarCarregamento = true;
AsyncOperation carregamento = Application.LoadLevelAsync (cena);
while (!carregamento.isDone) {
progresso = (int)(carregamento.progress*100);
yield return null;
}
}
void OnGUI (){
if (mostrarCarregamento == true) {
GUI.contentColor = corDoTexto;
GUI.skin.font = fonte;
GUI.skin.label.fontSize = (int)(Screen.height/50*tamanhoDoTexto);
//TEXTURA DE FUNDO
GUI.DrawTexture(new Rect(0,0, Screen.width, Screen.height), background);
//TEXTO DE CARREGAMENTO
float deslocXText = (Screen.height/10)*deslocarTextoX;
float deslocYText = (Screen.height/10)*deslocarTextoY;
GUI.Label(new Rect(Screen.width/2 + deslocXText, Screen.height/2 + deslocYText, Screen.width, Screen.height),loadTxt + " " + progresso + "%");
//BARRA DE PROGRESSO
float largura = Screen.width*(larguraDaBarra/10.0f);
float altura = Screen.height/50*alturaDaBarra;
float deslocYBar = (Screen.height/10)*deslocarBarra;
GUI.DrawTexture(new Rect(Screen.width/2 - largura/2, Screen.height/2 - (altura/2) + deslocYBar, largura*(progresso/100.0f), altura), barraDeProgresso);
}
}
}
WesFarias- Iniciante
- PONTOS : 2658
REPUTAÇÃO : 4
Respeito as regras :
Re: Loading cronometrado
Aqui Brother.
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Loading : MonoBehaviour {
[Header("Cena pós Carregamento")]
public string proximaCena;
public bool loading;
[Header("Configuração das Texturas")]
public Texture background;
public Texture barraDeProgresso;
public string loadTxt;
public Color corDoTexto;
public Font fonte;
[Header("Configuração de Dimensões")]
[Range(0.5f,3.0f)]
public float tamanhoDoTexto;
[Range(1,10)]
public int larguraDaBarra;
[Range(1,10)]
public int alturaDaBarra;
[Range(-4.5f,4.5f)]
public float deslocarBarra;
[Range(-8,4)]
public float deslocarTextoX;
[Range(-4.5f,4.5f)]
public float deslocarTextoY;
private bool mostrarCarregamento = false;
private int progresso = 0;
public float tempo;
void Update () {
if (loading == true) {
StartCoroutine(CenaDeCarregamento(proximaCena));
}
}
IEnumerator CenaDeCarregamento (string cena){
yield return new WaitForSeconds (tempo); //tempo a esperar
mostrarCarregamento = true;
AsyncOperation carregamento = Application.LoadLevelAsync (cena);
while (!carregamento.isDone) {
progresso = (int)(carregamento.progress*100);
yield return null;
}
}
void OnGUI (){
if (mostrarCarregamento == true) {
GUI.contentColor = corDoTexto;
GUI.skin.font = fonte;
GUI.skin.label.fontSize = (int)(Screen.height/50*tamanhoDoTexto);
//TEXTURA DE FUNDO
GUI.DrawTexture(new Rect(0,0, Screen.width, Screen.height), background);
//TEXTO DE CARREGAMENTO
float deslocXText = (Screen.height/10)*deslocarTextoX;
float deslocYText = (Screen.height/10)*deslocarTextoY;
GUI.Label(new Rect(Screen.width/2 + deslocXText, Screen.height/2 + deslocYText, Screen.width, Screen.height),loadTxt + " " + progresso + "%");
//BARRA DE PROGRESSO
float largura = Screen.width*(larguraDaBarra/10.0f);
float altura = Screen.height/50*alturaDaBarra;
float deslocYBar = (Screen.height/10)*deslocarBarra;
GUI.DrawTexture(new Rect(Screen.width/2 - largura/2, Screen.height/2 - (altura/2) + deslocYBar, largura*(progresso/100.0f), altura), barraDeProgresso);
}
}
}
Tópicos semelhantes
» Sistema de Susto Cronometrado
» Sistema de Susto Cronometrado
» Problema com uma barra de loading
» [TUTORIAL] Unity3d (Loading)
» [TUTORIAL] Cena De Loading
» Sistema de Susto Cronometrado
» Problema com uma barra de loading
» [TUTORIAL] Unity3d (Loading)
» [TUTORIAL] Cena De Loading
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos