[TUTORIAL] Como fazer uma Barra de Loading na Unity 5
+20
JohnRambo
rafaelllsd
bymaxbig
dinho
Soulphantom
anizioNoob
KramicGamer
LeonradoGp
hellkiller
Thalles Br
paladinojl
RenanMSV
augustines
cosmoplay
Marssa
FerX95
Chilinger
GustavoMaster
ParazitaGamerBR
MarcosSchultz
24 participantes
Página 2 de 2
Página 2 de 2 • 1, 2
Re: [TUTORIAL] Como fazer uma Barra de Loading na Unity 5
Se a cena for leve, o carregamento será rapido mesmo.
RenanMSV- Instrutor
- PONTOS : 4483
REPUTAÇÃO : 356
Áreas de atuação : Programação em C#, PHP. SQL, JavaScript (Web)
Respeito as regras :
Re: [TUTORIAL] Como fazer uma Barra de Loading na Unity 5
no caso pra demorar mais uso o yield com o waitiforseconds ?
Soulphantom- Membro
- PONTOS : 3225
REPUTAÇÃO : 3
Idade : 24
Áreas de atuação : PHP,HTML,C#,Blender etc
Respeito as regras :
Re: [TUTORIAL] Como fazer uma Barra de Loading na Unity 5
Soulphantom escreveu:no caso pra demorar mais uso o yield com o waitiforseconds ?
Segue aquele tutorial que eu linkei....
usa o yield e diz quanto tempo quer esperar...
Re: [TUTORIAL] Como fazer uma Barra de Loading na Unity 5
Olá Marcos primeiramente parabéns pelo tutorial , estou acompanhando suas aulas e ao mesmo tempo que estou ficando viciado em programação também estou ficando MALUCOOOO!!! Pois bem.. no meu caso aparece essa mensagem, vc pode me ajuda? =>
" />
Asynchronous Background loading is only supported in Unity Pro.
Please use Application.LoadLevel or Application.LoadLevelAdditive instead.
UnityEngine.Application:LoadLevelAsync(String)
<CenaDeCarregamento>c__Iterator3B:MoveNext() (at Assets/Scripts/Loading.cs:37)
UnityEngine.MonoBehaviour:StartCoroutine(IEnumerator)
Loading:Start() (at Assets/Scripts/Loading.cs:31)
" />
Asynchronous Background loading is only supported in Unity Pro.
Please use Application.LoadLevel or Application.LoadLevelAdditive instead.
UnityEngine.Application:LoadLevelAsync(String)
<CenaDeCarregamento>c__Iterator3B:MoveNext() (at Assets/Scripts/Loading.cs:37)
UnityEngine.MonoBehaviour:StartCoroutine(IEnumerator)
Loading:Start() (at Assets/Scripts/Loading.cs:31)
Re: [TUTORIAL] Como fazer uma Barra de Loading na Unity 5
dinho escreveu:Olá Marcos primeiramente parabéns pelo tutorial , estou acompanhando suas aulas e ao mesmo tempo que estou ficando viciado em programação também estou ficando MALUCOOOO!!! Pois bem.. no meu caso aparece essa mensagem, vc pode me ajuda? =>
" />
Asynchronous Background loading is only supported in Unity Pro.
Please use Application.LoadLevel or Application.LoadLevelAdditive instead.
UnityEngine.Application:LoadLevelAsync(String)
<CenaDeCarregamento>c__Iterator3B:MoveNext() (at Assets/Scripts/Loading.cs:37)
UnityEngine.MonoBehaviour:StartCoroutine(IEnumerator)
Loading:Start() (at Assets/Scripts/Loading.cs:31)
Qual a versão da sua Unity? é a Unity 4 ainda? Pois o erro aparenta ser sobre isto, e o tutorial é feito para Unity 5+
Re: [TUTORIAL] Como fazer uma Barra de Loading na Unity 5
gente uma duvida, porque vcs não usam UI em vez de GUI? por para mim que ama customização, e personalizar tudo do meu jeito fica meio complicado deixar tudo do meu estilo, e também faria aqueles que não assestem os videos tutorial assistirem para saber como fazer tudo certinho :D só uma sugestão
anizioNoob- Avançado
- PONTOS : 3476
REPUTAÇÃO : 17
Idade : 22
Áreas de atuação : Sei programar animators, e modelar no sketchup
Respeito as regras :
Re: [TUTORIAL] Como fazer uma Barra de Loading na Unity 5
anizioNoob escreveu:gente uma duvida, porque vcs não usam UI em vez de GUI? por para mim que ama customização, e personalizar tudo do meu jeito fica meio complicado deixar tudo do meu estilo, e também faria aqueles que não assestem os videos tutorial assistirem para saber como fazer tudo certinho :D só uma sugestão
Re: [TUTORIAL] Como fazer uma Barra de Loading na Unity 5
eu to criando um jogo de terror e nele tem um sistema de portas que quando vc aperta a tecla e ele vai pra outra cena, mas como a outra cena e muito pesada ele trava, dai queria saber com faço para dar uma condição para quando eu aperta "E" ele vai pra o loading e depois para outra cena... :D :D :D
bymaxbig- Membro
- PONTOS : 3263
REPUTAÇÃO : 5
Idade : 25
Respeito as regras :
Re: [TUTORIAL] Como fazer uma Barra de Loading na Unity 5
Se você está querendo entra na cena de carregamento clicando na letra "E", é só modificabymaxbig escreveu:eu to criando um jogo de terror e nele tem um sistema de portas que quando vc aperta a tecla e ele vai pra outra cena, mas como a outra cena e muito pesada ele trava, dai queria saber com faço para dar uma condição para quando eu aperta "E" ele vai pra o loading e depois para outra cena... :D :D :D
Isso:
- Código:
if (Input.GetKeyDown (KeyCode.Space)) {
StartCoroutine(CenaDeCarregamento(cenaACarregar));
}
}
- Código:
if (Input.GetKeyDown (KeyCode.E)) {
StartCoroutine(CenaDeCarregamento(cenaACarregar));
}
}
rafaelllsd- ProgramadorMaster
- PONTOS : 5241
REPUTAÇÃO : 507
Idade : 24
Áreas de atuação : Unity, Audacity, Blender, Gimp, C#, JS, MySQL.
Respeito as regras :
Re: [TUTORIAL] Como fazer uma Barra de Loading na Unity 5
Não tipo, o que eu tô dizendo é que eu tenho um script bem detalhado dá porta pra troca de cenas porém eu queria saber como eu faço para que quando eu chegar na porta e aperta a tecla "E" ele irá para a página de carregamento e depois pra a cena que é indicada pela porta só que os dois scripts são completamente diferentes como eu faria pra que os dois travassem juntos e só quando eu chegar na porta
bymaxbig- Membro
- PONTOS : 3263
REPUTAÇÃO : 5
Idade : 25
Respeito as regras :
Re: [TUTORIAL] Como fazer uma Barra de Loading na Unity 5
Se você já tiver feito o comando pra da porta ir para a cena de carregamento, Na sua cena de carregamento, crie um objeto e nele coloque este script.
No script onde tá escrito "SUACENA" você coloca o nome exato da cena que ira abrir após o carregamento
- Código:
using UnityEngine;
using System.Collections;
using UnityEngine.SceneManagement;
public class CONTADOR : MonoBehaviour {
public bool counterEnable = false;
public float counter;
public int tempoDesejado = 5;
void Start (){
counterEnable = true;
}
void Update (){
if (counterEnable == true){
counter += Time.deltaTime;
}
if (counter >= tempoDesejado){
SceneManager.LoadScene("SUACENA");
counterEnable = false;
counter = 0;
}
}
}
No script onde tá escrito "SUACENA" você coloca o nome exato da cena que ira abrir após o carregamento
JohnRambo- Moderador
- PONTOS : 5171
REPUTAÇÃO : 661
Idade : 24
Áreas de atuação : Unity;
Programação;
Música e Sonorização;
Graduado em Análise e Desenvolvimento de Sistemas;
Respeito as regras :
Re: [TUTORIAL] Como fazer uma Barra de Loading na Unity 5
intendi porem dessa forma nao funcionaria no meu caso.John Rambo escreveu:Se você já tiver feito o comando pra da porta ir para a cena de carregamento, Na sua cena de carregamento, crie um objeto e nele coloque este script.
- Código:
using UnityEngine;
using System.Collections;
using UnityEngine.SceneManagement;
public class CONTADOR : MonoBehaviour {
public bool counterEnable = false;
public float counter;
public int tempoDesejado = 5;
void Start (){
counterEnable = true;
}
void Update (){
if (counterEnable == true){
counter += Time.deltaTime;
}
if (counter >= tempoDesejado){
SceneManager.LoadScene("SUACENA");
counterEnable = false;
counter = 0;
}
}
}
No script onde tá escrito "SUACENA" você coloca o nome exato da cena que ira abrir após o carregamento
esse e o meu script, e tipo, ele ja faz tudo eu so quero colocar o script de carregamento pra trabalhar junto com ele,
- Código:
using UnityEngine;
using System.Collections;
[RequireComponent(typeof(AudioSource))]
public class PortaNiveis : MonoBehaviour {
public Font Fonte;
public Color cor;
public bool Trancada;
public float Distancia = 3;
public float tempoDoAviso = 2;
public string Nomedacena;
public AudioClip audioPortaAbrindo,audioPortaTrancada,audioDestrancandoporta;
public Texture textura;
private bool avisoPortaTrancada,ativarCarregamento;
public bool TemAChave = false;
public int IDdaChave;
private GameObject Jogador;
private float cronometroAviso,cronometroCarregamento;
// Use this for initialization
void Start () {
cronometroAviso = 0;
cronometroCarregamento = 0;
avisoPortaTrancada = false;
ativarCarregamento = false;
Jogador = GameObject.FindWithTag ("Player");
}
void Update () {
// SE TENTOU ABRIR A PORTA
if (Vector3.Distance (Jogador.transform.position, transform.position) <= Distancia && Input.GetKeyDown ("e")) {
for (int x = 0; x < DATA.chaves.Count; x++) {
if (DATA.chaves [x] == IDdaChave) {
TemAChave = true;
}
}
if (Trancada == true && TemAChave == false) {
avisoPortaTrancada = true;
GetComponent<AudioSource> ().PlayOneShot (audioPortaTrancada);
} else if (Trancada == true && TemAChave == true) {
Trancada = false;
GetComponent<AudioSource> ().PlayOneShot (audioDestrancandoporta);
} else if (Trancada == false) {
ativarCarregamento = true;
GetComponent<AudioSource> ().PlayOneShot (audioPortaAbrindo);
}
// CRONOMETRO AVISO
if (avisoPortaTrancada == true) {
cronometroAviso += Time.deltaTime;
}
if (cronometroAviso >= tempoDoAviso) {
avisoPortaTrancada = false;
cronometroAviso = 0;
}
// CRONOMETRO CAREEGAMENTO
if (ativarCarregamento == true) {
cronometroCarregamento += Time.deltaTime;
}
if (cronometroCarregamento >= 1) {
Application.LoadLevel (Nomedacena);
}
}
}
void OnGUI () {
cor.a = cronometroCarregamento;
GUI.color = cor;
GUI.DrawTexture (new Rect (0, 0, Screen.width, Screen.height), textura);
GUI.color = new Color32 (255, 255, 255, 255);
}
}
- Código:
// CRONOMETRO CAREEGAMENTO
if (ativarCarregamento == true) {
cronometroCarregamento += Time.deltaTime;
}
if (cronometroCarregamento >= 1) {
Application.LoadLevel (Nomedacena);
}
desde ja agradeço a ajuda vlw msm :D
bymaxbig- Membro
- PONTOS : 3263
REPUTAÇÃO : 5
Idade : 25
Respeito as regras :
Re: [TUTORIAL] Como fazer uma Barra de Loading na Unity 5
Tente isto:
- Código:
using UnityEngine;
using System.Collections;
using UnityEngine.SceneManagement;
using System;
[RequireComponent(typeof(AudioSource))]
[Serializable]
public class LoadLevels{
public Texture texturaFundos;
public Texture barraDeProgresso;
public string textoLoad = "Progresso do carregamento:";
public Color corDoTexto = Color.white;
public Font Fonte;
[Space(20)]
[Range(0.5f,3.0f)]
public float tamanhoDoTexto = 1.5f;
[Range(1,10)]
public int larguraDaBarra = 8;
[Range(1,10)]
public int alturaDaBarra = 2;
[Range(-4.5f,4.5f)]
public float deslocarBarra = 4;
[Range(-8,4)]
public float deslocarTextoX = 2;
[Range(-4.5f,4.5f)]
public float deslocarTextoY = 3;
[HideInInspector]public bool mostrarCarregamento = false;
[HideInInspector]public int progresso = 0;
}
public class PortaNiveis : MonoBehaviour {
public Font Fonte;
public Color cor;
public bool Trancada;
public float Distancia = 3;
public float tempoDoAviso = 2;
public string Nomedacena;
public AudioClip audioPortaAbrindo,audioPortaTrancada,audioDestrancandoporta;
public Texture textura;
private bool avisoPortaTrancada,ativarCarregamento;
public bool TemAChave = false;
public int IDdaChave;
private GameObject Jogador;
private float cronometroAviso,cronometroCarregamento;
[Space(20)]
public LoadLevels Carregamento;
void Start () {
cronometroAviso = 0;
cronometroCarregamento = 0;
avisoPortaTrancada = false;
ativarCarregamento = false;
Jogador = GameObject.FindWithTag ("Player");
}
void Update () {
// SE TENTOU ABRIR A PORTA
if (Vector3.Distance (Jogador.transform.position, transform.position) <= Distancia && Input.GetKeyDown ("e")) {
for (int x = 0; x < DATA.chaves.Count; x++) {
if (DATA.chaves [x] == IDdaChave) {
TemAChave = true;
}
}
if (Trancada == true && TemAChave == false) {
avisoPortaTrancada = true;
GetComponent<AudioSource> ().PlayOneShot (audioPortaTrancada);
} else if (Trancada == true && TemAChave == true) {
Trancada = false;
GetComponent<AudioSource> ().PlayOneShot (audioDestrancandoporta);
} else if (Trancada == false) {
ativarCarregamento = true;
GetComponent<AudioSource> ().PlayOneShot (audioPortaAbrindo);
}
// CRONOMETRO AVISO
if (avisoPortaTrancada == true) {
cronometroAviso += Time.deltaTime;
}
if (cronometroAviso >= tempoDoAviso) {
avisoPortaTrancada = false;
cronometroAviso = 0;
}
// CRONOMETRO CAREEGAMENTO
if (ativarCarregamento == true) {
cronometroCarregamento += Time.deltaTime;
}
if (cronometroCarregamento >= 1) {
StartCoroutine(CenaDeCarregamento(Nomedacena));
}
}
}
IEnumerator CenaDeCarregamento (string cena){
Carregamento.mostrarCarregamento = true;
AsyncOperation carregamento = SceneManager.LoadSceneAsync (cena);
while (!carregamento.isDone) {
Carregamento.progresso = (int)(carregamento.progress*100);
yield return null;
}
}
void OnGUI () {
if (Carregamento.mostrarCarregamento == false) {
cor.a = cronometroCarregamento;
GUI.color = cor;
GUI.DrawTexture (new Rect (0, 0, Screen.width, Screen.height), textura);
GUI.color = new Color32 (255, 255, 255, 255);
}
else {
GUI.contentColor = Carregamento.corDoTexto;
GUI.skin.font = Fonte;
GUI.skin.label.fontSize = (int)(Screen.height/50*Carregamento.tamanhoDoTexto);
//TEXTURA DE FUNDO
GUI.DrawTexture(new Rect(0,0, Screen.width, Screen.height), Carregamento.texturaFundos);
//TEXTO DE CARREGAMENTO
float deslocXText = (Screen.height/10)*Carregamento.deslocarTextoX;
float deslocYText = (Screen.height/10)*Carregamento.deslocarTextoY;
GUI.Label(new Rect(Screen.width/2 + deslocXText, Screen.height/2 + deslocYText, Screen.width, Screen.height),Carregamento.textoLoad + " " + Carregamento.progresso + "%");
//BARRA DE PROGRESSO
float largura = Screen.width*(Carregamento.larguraDaBarra/10.0f);
float altura = Screen.height/50*Carregamento.alturaDaBarra;
float deslocYBar = (Screen.height/10)*Carregamento.deslocarBarra;
GUI.DrawTexture(new Rect(Screen.width/2 - largura/2, Screen.height/2 - (altura/2) + deslocYBar, largura*(Carregamento.progresso/100.0f), altura), Carregamento.barraDeProgresso);
}
}
}
Re: [TUTORIAL] Como fazer uma Barra de Loading na Unity 5
Deu certo mano vlw so que de alguma forma quando eu aperto a tecla "E" agr tem que aperta varias e varias vezes para carregar a cena, o que sera que eu fiz de errado :/MarcosSchultz escreveu:Tente isto:
- Código:
using UnityEngine;
using System.Collections;
using UnityEngine.SceneManagement;
using System;
[RequireComponent(typeof(AudioSource))]
[Serializable]
public class LoadLevels{
public Texture texturaFundos;
public Texture barraDeProgresso;
public string textoLoad = "Progresso do carregamento:";
public Color corDoTexto = Color.white;
public Font Fonte;
[Space(20)]
[Range(0.5f,3.0f)]
public float tamanhoDoTexto = 1.5f;
[Range(1,10)]
public int larguraDaBarra = 8;
[Range(1,10)]
public int alturaDaBarra = 2;
[Range(-4.5f,4.5f)]
public float deslocarBarra = 4;
[Range(-8,4)]
public float deslocarTextoX = 2;
[Range(-4.5f,4.5f)]
public float deslocarTextoY = 3;
[HideInInspector]public bool mostrarCarregamento = false;
[HideInInspector]public int progresso = 0;
}
public class PortaNiveis : MonoBehaviour {
public Font Fonte;
public Color cor;
public bool Trancada;
public float Distancia = 3;
public float tempoDoAviso = 2;
public string Nomedacena;
public AudioClip audioPortaAbrindo,audioPortaTrancada,audioDestrancandoporta;
public Texture textura;
private bool avisoPortaTrancada,ativarCarregamento;
public bool TemAChave = false;
public int IDdaChave;
private GameObject Jogador;
private float cronometroAviso,cronometroCarregamento;
[Space(20)]
public LoadLevels Carregamento;
void Start () {
cronometroAviso = 0;
cronometroCarregamento = 0;
avisoPortaTrancada = false;
ativarCarregamento = false;
Jogador = GameObject.FindWithTag ("Player");
}
void Update () {
// SE TENTOU ABRIR A PORTA
if (Vector3.Distance (Jogador.transform.position, transform.position) <= Distancia && Input.GetKeyDown ("e")) {
for (int x = 0; x < DATA.chaves.Count; x++) {
if (DATA.chaves [x] == IDdaChave) {
TemAChave = true;
}
}
if (Trancada == true && TemAChave == false) {
avisoPortaTrancada = true;
GetComponent<AudioSource> ().PlayOneShot (audioPortaTrancada);
} else if (Trancada == true && TemAChave == true) {
Trancada = false;
GetComponent<AudioSource> ().PlayOneShot (audioDestrancandoporta);
} else if (Trancada == false) {
ativarCarregamento = true;
GetComponent<AudioSource> ().PlayOneShot (audioPortaAbrindo);
}
// CRONOMETRO AVISO
if (avisoPortaTrancada == true) {
cronometroAviso += Time.deltaTime;
}
if (cronometroAviso >= tempoDoAviso) {
avisoPortaTrancada = false;
cronometroAviso = 0;
}
// CRONOMETRO CAREEGAMENTO
if (ativarCarregamento == true) {
cronometroCarregamento += Time.deltaTime;
}
if (cronometroCarregamento >= 1) {
StartCoroutine(CenaDeCarregamento(Nomedacena));
}
}
}
IEnumerator CenaDeCarregamento (string cena){
Carregamento.mostrarCarregamento = true;
AsyncOperation carregamento = SceneManager.LoadSceneAsync (cena);
while (!carregamento.isDone) {
Carregamento.progresso = (int)(carregamento.progress*100);
yield return null;
}
}
void OnGUI () {
if (Carregamento.mostrarCarregamento == false) {
cor.a = cronometroCarregamento;
GUI.color = cor;
GUI.DrawTexture (new Rect (0, 0, Screen.width, Screen.height), textura);
GUI.color = new Color32 (255, 255, 255, 255);
}
else {
GUI.contentColor = Carregamento.corDoTexto;
GUI.skin.font = Fonte;
GUI.skin.label.fontSize = (int)(Screen.height/50*Carregamento.tamanhoDoTexto);
//TEXTURA DE FUNDO
GUI.DrawTexture(new Rect(0,0, Screen.width, Screen.height), Carregamento.texturaFundos);
//TEXTO DE CARREGAMENTO
float deslocXText = (Screen.height/10)*Carregamento.deslocarTextoX;
float deslocYText = (Screen.height/10)*Carregamento.deslocarTextoY;
GUI.Label(new Rect(Screen.width/2 + deslocXText, Screen.height/2 + deslocYText, Screen.width, Screen.height),Carregamento.textoLoad + " " + Carregamento.progresso + "%");
//BARRA DE PROGRESSO
float largura = Screen.width*(Carregamento.larguraDaBarra/10.0f);
float altura = Screen.height/50*Carregamento.alturaDaBarra;
float deslocYBar = (Screen.height/10)*Carregamento.deslocarBarra;
GUI.DrawTexture(new Rect(Screen.width/2 - largura/2, Screen.height/2 - (altura/2) + deslocYBar, largura*(Carregamento.progresso/100.0f), altura), Carregamento.barraDeProgresso);
}
}
}
bymaxbig- Membro
- PONTOS : 3263
REPUTAÇÃO : 5
Idade : 25
Respeito as regras :
Re: [TUTORIAL] Como fazer uma Barra de Loading na Unity 5
Quantas vezes? tem todo o ciclo, se a porta está trancada, aparece aviso. Se está trancada e tem a chave, primeiro ele destranca, depois abre, depois carrega
Re: [TUTORIAL] Como fazer uma Barra de Loading na Unity 5
Tenho que apertar, umas 20 vezes a tecla "e" e o áudio dá porta abrindo se repete cada vez que eu aperto a tecla
Ja tentei mudar pra Input.GetKey mas não deu certo tb obs eu sei que esse comando, significa apertar e segurar
Se quiser posso gravar um vídeo e postar no YouTube e marca como não listado daí te dou o link e vc pode ver
Ja tentei mudar pra Input.GetKey mas não deu certo tb obs eu sei que esse comando, significa apertar e segurar
Se quiser posso gravar um vídeo e postar no YouTube e marca como não listado daí te dou o link e vc pode ver
bymaxbig- Membro
- PONTOS : 3263
REPUTAÇÃO : 5
Idade : 25
Respeito as regras :
Re: [TUTORIAL] Como fazer uma Barra de Loading na Unity 5
outro coisa que me recordo e que o aviso da porta trancada aparece mas não some
bymaxbig- Membro
- PONTOS : 3263
REPUTAÇÃO : 5
Idade : 25
Respeito as regras :
Re: [TUTORIAL] Como fazer uma Barra de Loading na Unity 5
bymaxbig escreveu:Tenho que apertar, umas 20 vezes a tecla "e" e o áudio dá porta abrindo se repete cada vez que eu aperto a tecla
Ja tentei mudar pra Input.GetKey mas não deu certo tb obs eu sei que esse comando, significa apertar e segurar
Se quiser posso gravar um vídeo e postar no YouTube e marca como não listado daí te dou o link e vc pode ver
bymaxbig- Membro
- PONTOS : 3263
REPUTAÇÃO : 5
Idade : 25
Respeito as regras :
Re: [TUTORIAL] Como fazer uma Barra de Loading na Unity 5
Tente agora:
- Código:
using UnityEngine;
using System.Collections;
using UnityEngine.SceneManagement;
using System;
[RequireComponent(typeof(AudioSource))]
[Serializable]
public class LoadLevels{
public Texture texturaFundos;
public Texture barraDeProgresso;
public string textoLoad = "Progresso do carregamento:";
public Color corDoTexto = Color.white;
public Font Fonte;
[Space(20)]
[Range(0.5f,3.0f)]
public float tamanhoDoTexto = 1.5f;
[Range(1,10)]
public int larguraDaBarra = 8;
[Range(1,10)]
public int alturaDaBarra = 2;
[Range(-4.5f,4.5f)]
public float deslocarBarra = 4;
[Range(-8,4)]
public float deslocarTextoX = 2;
[Range(-4.5f,4.5f)]
public float deslocarTextoY = 3;
[HideInInspector]public bool mostrarCarregamento = false;
[HideInInspector]public int progresso = 0;
}
public class PortaNiveis : MonoBehaviour {
public Font Fonte;
public Color cor;
public bool Trancada;
public float Distancia = 3;
public float tempoDoAviso = 2;
public string Nomedacena;
public AudioClip audioPortaAbrindo,audioPortaTrancada,audioDestrancandoporta;
public Texture textura;
private bool avisoPortaTrancada;
public bool TemAChave = false;
public int IDdaChave;
private GameObject Jogador;
private float cronometroAviso;
[Space(20)]
public LoadLevels Carregamento;
void Start () {
cronometroAviso = 0;
avisoPortaTrancada = false;
Jogador = GameObject.FindWithTag ("Player");
}
void Update () {
// SE TENTOU ABRIR A PORTA
if (Vector3.Distance (Jogador.transform.position, transform.position) <= Distancia && Input.GetKeyDown ("e")) {
for (int x = 0; x < DATA.chaves.Count; x++) {
if (DATA.chaves [x] == IDdaChave) {
TemAChave = true;
}
}
if (Trancada == true && TemAChave == false) {
avisoPortaTrancada = true;
GetComponent<AudioSource> ().PlayOneShot (audioPortaTrancada);
} else if (Trancada == true && TemAChave == true) {
Trancada = false;
GetComponent<AudioSource> ().PlayOneShot (audioDestrancandoporta);
} else if (Trancada == false) {
StartCoroutine(CenaDeCarregamento(Nomedacena));
GetComponent<AudioSource> ().PlayOneShot (audioPortaAbrindo);
}
}
// CRONOMETRO AVISO
if (avisoPortaTrancada == true) {
cronometroAviso += Time.deltaTime;
}
if (cronometroAviso >= tempoDoAviso) {
avisoPortaTrancada = false;
cronometroAviso = 0;
}
}
IEnumerator CenaDeCarregamento (string cena){
Carregamento.mostrarCarregamento = true;
AsyncOperation carregamento = SceneManager.LoadSceneAsync (cena);
while (!carregamento.isDone) {
Carregamento.progresso = (int)(carregamento.progress*100);
yield return null;
}
}
void OnGUI () {
if (Carregamento.mostrarCarregamento == true) {
GUI.contentColor = Carregamento.corDoTexto;
GUI.skin.font = Fonte;
GUI.skin.label.fontSize = (int)(Screen.height/50*Carregamento.tamanhoDoTexto);
//TEXTURA DE FUNDO
GUI.DrawTexture(new Rect(0,0, Screen.width, Screen.height), Carregamento.texturaFundos);
//TEXTO DE CARREGAMENTO
float deslocXText = (Screen.height/10)*Carregamento.deslocarTextoX;
float deslocYText = (Screen.height/10)*Carregamento.deslocarTextoY;
GUI.Label(new Rect(Screen.width/2 + deslocXText, Screen.height/2 + deslocYText, Screen.width, Screen.height),Carregamento.textoLoad + " " + Carregamento.progresso + "%");
//BARRA DE PROGRESSO
float largura = Screen.width*(Carregamento.larguraDaBarra/10.0f);
float altura = Screen.height/50*Carregamento.alturaDaBarra;
float deslocYBar = (Screen.height/10)*Carregamento.deslocarBarra;
GUI.DrawTexture(new Rect(Screen.width/2 - largura/2, Screen.height/2 - (altura/2) + deslocYBar, largura*(Carregamento.progresso/100.0f), altura), Carregamento.barraDeProgresso);
}
}
}
Re: [TUTORIAL] Como fazer uma Barra de Loading na Unity 5
aaaaaaaaaaaaeeeeeeeeeeeeewwwwwwwwwwwwwww agora deu certo mas qual era o problema ?MarcosSchultz escreveu:Tente agora:
- Código:
using UnityEngine;
using System.Collections;
using UnityEngine.SceneManagement;
using System;
[RequireComponent(typeof(AudioSource))]
[Serializable]
public class LoadLevels{
public Texture texturaFundos;
public Texture barraDeProgresso;
public string textoLoad = "Progresso do carregamento:";
public Color corDoTexto = Color.white;
public Font Fonte;
[Space(20)]
[Range(0.5f,3.0f)]
public float tamanhoDoTexto = 1.5f;
[Range(1,10)]
public int larguraDaBarra = 8;
[Range(1,10)]
public int alturaDaBarra = 2;
[Range(-4.5f,4.5f)]
public float deslocarBarra = 4;
[Range(-8,4)]
public float deslocarTextoX = 2;
[Range(-4.5f,4.5f)]
public float deslocarTextoY = 3;
[HideInInspector]public bool mostrarCarregamento = false;
[HideInInspector]public int progresso = 0;
}
public class PortaNiveis : MonoBehaviour {
public Font Fonte;
public Color cor;
public bool Trancada;
public float Distancia = 3;
public float tempoDoAviso = 2;
public string Nomedacena;
public AudioClip audioPortaAbrindo,audioPortaTrancada,audioDestrancandoporta;
public Texture textura;
private bool avisoPortaTrancada;
public bool TemAChave = false;
public int IDdaChave;
private GameObject Jogador;
private float cronometroAviso;
[Space(20)]
public LoadLevels Carregamento;
void Start () {
cronometroAviso = 0;
avisoPortaTrancada = false;
Jogador = GameObject.FindWithTag ("Player");
}
void Update () {
// SE TENTOU ABRIR A PORTA
if (Vector3.Distance (Jogador.transform.position, transform.position) <= Distancia && Input.GetKeyDown ("e")) {
for (int x = 0; x < DATA.chaves.Count; x++) {
if (DATA.chaves [x] == IDdaChave) {
TemAChave = true;
}
}
if (Trancada == true && TemAChave == false) {
avisoPortaTrancada = true;
GetComponent<AudioSource> ().PlayOneShot (audioPortaTrancada);
} else if (Trancada == true && TemAChave == true) {
Trancada = false;
GetComponent<AudioSource> ().PlayOneShot (audioDestrancandoporta);
} else if (Trancada == false) {
StartCoroutine(CenaDeCarregamento(Nomedacena));
GetComponent<AudioSource> ().PlayOneShot (audioPortaAbrindo);
}
}
// CRONOMETRO AVISO
if (avisoPortaTrancada == true) {
cronometroAviso += Time.deltaTime;
}
if (cronometroAviso >= tempoDoAviso) {
avisoPortaTrancada = false;
cronometroAviso = 0;
}
}
IEnumerator CenaDeCarregamento (string cena){
Carregamento.mostrarCarregamento = true;
AsyncOperation carregamento = SceneManager.LoadSceneAsync (cena);
while (!carregamento.isDone) {
Carregamento.progresso = (int)(carregamento.progress*100);
yield return null;
}
}
void OnGUI () {
if (Carregamento.mostrarCarregamento == true) {
GUI.contentColor = Carregamento.corDoTexto;
GUI.skin.font = Fonte;
GUI.skin.label.fontSize = (int)(Screen.height/50*Carregamento.tamanhoDoTexto);
//TEXTURA DE FUNDO
GUI.DrawTexture(new Rect(0,0, Screen.width, Screen.height), Carregamento.texturaFundos);
//TEXTO DE CARREGAMENTO
float deslocXText = (Screen.height/10)*Carregamento.deslocarTextoX;
float deslocYText = (Screen.height/10)*Carregamento.deslocarTextoY;
GUI.Label(new Rect(Screen.width/2 + deslocXText, Screen.height/2 + deslocYText, Screen.width, Screen.height),Carregamento.textoLoad + " " + Carregamento.progresso + "%");
//BARRA DE PROGRESSO
float largura = Screen.width*(Carregamento.larguraDaBarra/10.0f);
float altura = Screen.height/50*Carregamento.alturaDaBarra;
float deslocYBar = (Screen.height/10)*Carregamento.deslocarBarra;
GUI.DrawTexture(new Rect(Screen.width/2 - largura/2, Screen.height/2 - (altura/2) + deslocYBar, largura*(Carregamento.progresso/100.0f), altura), Carregamento.barraDeProgresso);
}
}
}
bymaxbig- Membro
- PONTOS : 3263
REPUTAÇÃO : 5
Idade : 25
Respeito as regras :
Re: [TUTORIAL] Como fazer uma Barra de Loading na Unity 5
a parte do += Time.deltaTime estava dentro do if de apertar E, então só contava o tempo quando você apartava E
Re: [TUTORIAL] Como fazer uma Barra de Loading na Unity 5
A sim entendi vlw brother me ajudou muito...
bymaxbig- Membro
- PONTOS : 3263
REPUTAÇÃO : 5
Idade : 25
Respeito as regras :
Re: [TUTORIAL] Como fazer uma Barra de Loading na Unity 5
Como eu faço para clicar em qualquer lugar da tela de um celular para executar o carregamento?
Não sou muito bom com programação. Me ajudem por favor!
Se houver uma boa alma disposta a me ajudar me adicione o whatsapp por favor. 11 984410809
Prometo não ser inconveniente.
Não sou muito bom com programação. Me ajudem por favor!
Se houver uma boa alma disposta a me ajudar me adicione o whatsapp por favor. 11 984410809
Prometo não ser inconveniente.
raulframos- Iniciante
- PONTOS : 2631
REPUTAÇÃO : 0
Respeito as regras :
Re: [TUTORIAL] Como fazer uma Barra de Loading na Unity 5
raulframos escreveu:Como eu faço para clicar em qualquer lugar da tela de um celular para executar o carregamento?
Não sou muito bom com programação. Me ajudem por favor!
Se houver uma boa alma disposta a me ajudar me adicione o whatsapp por favor. 11 984410809
Prometo não ser inconveniente.
Vc que um botão pra cancelar o carregamento é isso
g- Membro
- PONTOS : 2876
REPUTAÇÃO : 15
Áreas de atuação : Iniciante em C#, Modelagem,Qualquer coisa
Respeito as regras :
Re: [TUTORIAL] Como fazer uma Barra de Loading na Unity 5
Boa Tarde g.g escreveu:raulframos escreveu:Como eu faço para clicar em qualquer lugar da tela de um celular para executar o carregamento?
Não sou muito bom com programação. Me ajudem por favor!
Se houver uma boa alma disposta a me ajudar me adicione o whatsapp por favor. 11 984410809
Prometo não ser inconveniente.
Vc que um botão pra cancelar o carregamento é isso
Gostaria de fazer uma mensagem de aviso em que se tem um alerta para o usuário. Nela vai conter um texto como, para concordar, clique em qualquer lugar da tela para carregar uma segunda sena.
com este script funcionou perfeitamente com a barra de espaço.
Gostaria de, ao clicar na tela, execute a mesma ação.
raulframos- Iniciante
- PONTOS : 2631
REPUTAÇÃO : 0
Respeito as regras :
Re: [TUTORIAL] Como fazer uma Barra de Loading na Unity 5
Adicione na essas linha de codigo no script loading pode ser no final
depois crie um novo botão e link o objeto q esta o script e coloque pra chamar a cena pelo botão
- Código:
public void ChamarCena () {[size=14][/size] [size=14][/size] StartCoroutine(CenaDeCarregamento(cenaACarregar));[size=14][/size][size=14][/size] }
depois crie um novo botão e link o objeto q esta o script e coloque pra chamar a cena pelo botão
g- Membro
- PONTOS : 2876
REPUTAÇÃO : 15
Áreas de atuação : Iniciante em C#, Modelagem,Qualquer coisa
Respeito as regras :
Re: [TUTORIAL] Como fazer uma Barra de Loading na Unity 5
g escreveu:Adicione na essas linha de codigo no script loading pode ser no final
- Código:
public void ChamarCena () {[size=14][/size] [size=14][/size] StartCoroutine(CenaDeCarregamento(cenaACarregar));[size=14][/size][size=14][/size] }
depois crie um novo botão e link o objeto q esta o script e coloque pra chamar a cena pelo botão
Aqui saiu estranho ai em cima
- Código:
public void ChamarCena () {
StartCoroutine(CenaDeCarregamento(cenaACarregar));
}
g- Membro
- PONTOS : 2876
REPUTAÇÃO : 15
Áreas de atuação : Iniciante em C#, Modelagem,Qualquer coisa
Respeito as regras :
Re: [TUTORIAL] Como fazer uma Barra de Loading na Unity 5
Meu amigo... Deu muito certo. OBRIGADO!g escreveu:g escreveu:Adicione na essas linha de codigo no script loading pode ser no final
- Código:
public void ChamarCena () {[size=14][/size] [size=14][/size] StartCoroutine(CenaDeCarregamento(cenaACarregar));[size=14][/size][size=14][/size] }
depois crie um novo botão e link o objeto q esta o script e coloque pra chamar a cena pelo botão
Aqui saiu estranho ai em cima
- Código:
public void ChamarCena () {
StartCoroutine(CenaDeCarregamento(cenaACarregar));
}
Sem precisar de um rim ou algo assim me procure. :D :D :D :D :D
raulframos- Iniciante
- PONTOS : 2631
REPUTAÇÃO : 0
Respeito as regras :
Re: [TUTORIAL] Como fazer uma Barra de Loading na Unity 5
Marcos, estou com um problema, pois no meu jogo, quando o usuario clicar em Jogar, vai aparecer a cena de carregamento e depois vai pro jogo, mas quando boto o seu script da aula na cena de carregamento, quando o usuario bota em jogar a cena de carregamento aparece muito rapido e dai ja pula pro jogo, e não estou conseguindo resolver isso! Desde já, grato!
Manito01- Iniciante
- PONTOS : 1819
REPUTAÇÃO : 0
Respeito as regras :
Re: [TUTORIAL] Como fazer uma Barra de Loading na Unity 5
Mano ajudou muito no meu projeto aqui valeu pelo código mano continua o que vc faz velho curti mt seus vídeos só tenho agradecer mano tmj!!!
Derick Riedel- Iniciante
- PONTOS : 1663
REPUTAÇÃO : 0
Respeito as regras :
Página 2 de 2 • 1, 2
Tópicos semelhantes
» [TUTORIAL] Como fazer um laser com LineRenderer - UNITY 5
» [TUTORIAL] Como fazer um ponteiro de VELOCIDADE, RPM, etc na Unity
» [TUTORIAL] Unity 3D - Como fazer um imã simples.
» [TUTORIAL] Como fazer um Sol Realista na Unity 5 ( Sun Shafts )
» [TUTORIAL] Como fazer um interruptor simples (Unity 2018)
» [TUTORIAL] Como fazer um ponteiro de VELOCIDADE, RPM, etc na Unity
» [TUTORIAL] Unity 3D - Como fazer um imã simples.
» [TUTORIAL] Como fazer um Sol Realista na Unity 5 ( Sun Shafts )
» [TUTORIAL] Como fazer um interruptor simples (Unity 2018)
Página 2 de 2
Permissões neste sub-fórum
Não podes responder a tópicos