[Ajuda] Sistema de Loading Level
3 participantes
Página 1 de 1
[Ajuda] Sistema de Loading Level
No meu Script eu botei um comando extremamente simples para ir do nível 1 para o nível 2 caso, encoste na porta, mas não posso repetir o processo do nível 2 para o 3 pois é a mesma porta, se eu muda o comando mexe com os níveis anteriores, então como faço para fazer um sistema de loading lvl direitinho?
dfop02- Avançado
- PONTOS : 3258
REPUTAÇÃO : 2
Idade : 27
Respeito as regras :
Re: [Ajuda] Sistema de Loading Level
Faça uma int, e verifique elas, tipo a int ta 1 se eu passar a porta para o dois, soma +1, e assim por diante,
ai antes de passar do 1 pro 2 vc verifica em que int esta, tipo eu so posso passar do 1 pro 2 , se o int tiver no 1.
Depois basta vc salvar os ints com o playerprefs!
ai antes de passar do 1 pro 2 vc verifica em que int esta, tipo eu so posso passar do 1 pro 2 , se o int tiver no 1.
Depois basta vc salvar os ints com o playerprefs!
hellkiller- Mestre
- PONTOS : 4053
REPUTAÇÃO : 170
Áreas de atuação : Programação em C#,
Modelagem,
GameArt.
Respeito as regras :
Re: [Ajuda] Sistema de Loading Level
hellkiller escreveu:Faça uma int, e verifique elas, tipo a int ta 1 se eu passar a porta para o dois, soma +1, e assim por diante,
ai antes de passar do 1 pro 2 vc verifica em que int esta, tipo eu so posso passar do 1 pro 2 , se o int tiver no 1.
Depois basta vc salvar os ints com o playerprefs!
Não entendi muito... pode escrever do 1 ao 2 e do 2 ao 3 pra eu ter uma noção? Com exemplos eu aprendo melhor
dfop02- Avançado
- PONTOS : 3258
REPUTAÇÃO : 2
Idade : 27
Respeito as regras :
Re: [Ajuda] Sistema de Loading Level
Okay, escrevi meio confuso mesmo,kkk:
1-Crie uma variavel inteira(int) de a ela um nome qualquer ,(exemplo LevelAtual), e coloque no start(LevelAtual = 1)
2-Onde muda de fase , coloque um if(verificando se o levelAtual = 1, se for pode passar para a fase 1)
3-Coloque um else if (verificando se o levelatual = 2, se for ele passa para a fase 2, e assim por diante)
(lembrando coloque a parte de mudar de fase no if e no else if)
3-No parte de mudar dentro do if levelatual = 1 , coloque assim que quando passar mudar a variavel LevelAtual recebe=2;
4-Caso tenho mais fazes e so ir fazendo o mesmo processo!
5-Lembre de salvar com playerPrefs o Levelatual(em que int esta!)
N se esqueça do Like!
Exemplo :
1-Crie uma variavel inteira(int) de a ela um nome qualquer ,(exemplo LevelAtual), e coloque no start(LevelAtual = 1)
2-Onde muda de fase , coloque um if(verificando se o levelAtual = 1, se for pode passar para a fase 1)
3-Coloque um else if (verificando se o levelatual = 2, se for ele passa para a fase 2, e assim por diante)
(lembrando coloque a parte de mudar de fase no if e no else if)
3-No parte de mudar dentro do if levelatual = 1 , coloque assim que quando passar mudar a variavel LevelAtual recebe=2;
4-Caso tenho mais fazes e so ir fazendo o mesmo processo!
5-Lembre de salvar com playerPrefs o Levelatual(em que int esta!)
N se esqueça do Like!
Exemplo :
- Código:
using UnityEngine;
using UnityEngine.UI;
using System.Collections;
public class Sindico : MonoBehaviour
{
public int LevelAtual = 1;
void Update()
{
if(LevelAtual == 1)
{
if (passouPelaPorta...)
{
////muda de fase 1
LevelAtual = 2;
}
}else if (LevelAtual == 2)
{
if (passouPelaPorta...)
{
////muda de fase 2
LevelAtual = 3;
}
}
else if (LevelAtual == 3)
{
if (passouPelaPorta...)
{
////muda para fase 3
LevelAtual = 4;
}
}
}
}
hellkiller- Mestre
- PONTOS : 4053
REPUTAÇÃO : 170
Áreas de atuação : Programação em C#,
Modelagem,
GameArt.
Respeito as regras :
Re: [Ajuda] Sistema de Loading Level
eu faria uma simples string para guardar o nome da cena que quero dar load com a porta, exemplo:
na variavel "cenaACarregar" você escreve o nome exato da cena que quer carregar
na variável "barraDeProgresso" você joga uma "Image" que deve ser a barra de progresso do carregamento
na variável "textoProgresso" você joga um Text que deve ser o texto que mostra a porcentagem do carregamento
- Código:
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using UnityEngine.SceneManagement;
public class Loading : MonoBehaviour {
[Header("Nome da cena a ser carregada")]
public string cenaACarregar;
[Space(10)]
public Image barraDeProgresso;
public Text textoProgresso;
private Collider[] Colisores;
private bool mostrarCarregamento = false;
private int progresso = 0;
private string textoOriginal;
void Start(){
textoOriginal = textoProgresso.text;
barraDeProgresso.type = Image.Type.Filled;
barraDeProgresso.fillMethod = Image.FillMethod.Horizontal;
barraDeProgresso.fillOrigin = (int)Image.OriginHorizontal.Left;
Colisores = transform.GetComponentsInChildren<Collider> ();
}
IEnumerator CenaDeCarregamento (string cena){
mostrarCarregamento = true;
AsyncOperation carregamento = SceneManager.LoadSceneAsync (cena);
while (!carregamento.isDone) {
progresso = (int)(carregamento.progress*100);
yield return null;
}
}
public void Carregar(){
StartCoroutine(CenaDeCarregamento(cenaACarregar));
}
void Update(){
if (mostrarCarregamento == true) {
textoProgresso.text = textoOriginal + " " + progresso + "%";
barraDeProgresso.fillAmount = (progresso / 100.0f);
} else {
textoProgresso.text = " ";
barraDeProgresso.fillAmount = 0;
}
}
void OnTriggerEnter(){
foreach (Collider coll in Colisores) {
coll.enabled = false;
}
Carregar ();
}
}
na variavel "cenaACarregar" você escreve o nome exato da cena que quer carregar
na variável "barraDeProgresso" você joga uma "Image" que deve ser a barra de progresso do carregamento
na variável "textoProgresso" você joga um Text que deve ser o texto que mostra a porcentagem do carregamento
Re: [Ajuda] Sistema de Loading Level
MarcosSchultz escreveu:eu faria uma simples string para guardar o nome da cena que quero dar load com a porta, exemplo:
- Código:
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using UnityEngine.SceneManagement;
public class Loading : MonoBehaviour {
[Header("Nome da cena a ser carregada")]
public string cenaACarregar;
[Space(10)]
public Image barraDeProgresso;
public Text textoProgresso;
private Collider[] Colisores;
private bool mostrarCarregamento = false;
private int progresso = 0;
private string textoOriginal;
void Start(){
textoOriginal = textoProgresso.text;
barraDeProgresso.type = Image.Type.Filled;
barraDeProgresso.fillMethod = Image.FillMethod.Horizontal;
barraDeProgresso.fillOrigin = (int)Image.OriginHorizontal.Left;
Colisores = transform.GetComponentsInChildren<Collider> ();
}
IEnumerator CenaDeCarregamento (string cena){
mostrarCarregamento = true;
AsyncOperation carregamento = SceneManager.LoadSceneAsync (cena);
while (!carregamento.isDone) {
progresso = (int)(carregamento.progress*100);
yield return null;
}
}
public void Carregar(){
StartCoroutine(CenaDeCarregamento(cenaACarregar));
}
void Update(){
if (mostrarCarregamento == true) {
textoProgresso.text = textoOriginal + " " + progresso + "%";
barraDeProgresso.fillAmount = (progresso / 100.0f);
} else {
textoProgresso.text = " ";
barraDeProgresso.fillAmount = 0;
}
}
void OnTriggerEnter(){
foreach (Collider coll in Colisores) {
coll.enabled = false;
}
Carregar ();
}
}
na variavel "cenaACarregar" você escreve o nome exato da cena que quer carregar
na variável "barraDeProgresso" você joga uma "Image" que deve ser a barra de progresso do carregamento
na variável "textoProgresso" você joga um Text que deve ser o texto que mostra a porcentagem do carregamento
Valeu, mas eu pretendo fazer uma média de 70 fases, esse script só faz fase por fase, teria q fazer 69 scripts diferentes pra poder terminar, mas nem tinha parado pra pensa em tela de loading, ja q é um game pra celular
dfop02- Avançado
- PONTOS : 3258
REPUTAÇÃO : 2
Idade : 27
Respeito as regras :
Re: [Ajuda] Sistema de Loading Level
Não cara, você pode usar o mesmo script para cada fase... se está em uma mesma cena, pode usar uma array de strings
Re: [Ajuda] Sistema de Loading Level
MarcosSchultz escreveu:Não cara, você pode usar o mesmo script para cada fase... se está em uma mesma cena, pode usar uma array de strings
Passei um tempo ausente, tive uns problemas e tal, voltei agora, poderia explicar melhor como usar esses Arrays lvl por lvl?
Estou pensando em postar o meu game com 3 lvl aqui para vocês avaliarem, eu acho que está mt bosta, mas quem sabe ^^
dfop02- Avançado
- PONTOS : 3258
REPUTAÇÃO : 2
Idade : 27
Respeito as regras :
Re: [Ajuda] Sistema de Loading Level
Eu ainda não entendi por que você não consegue usar o mesmo script para várias cenas diferentes... basta mudar o nome da cena no inspector
Tópicos semelhantes
» [AJUDA]Preciso de ajuda em um script relacionado ao vídeo Sistema de escolha de personagen
» Ajuda script de loading
» [Ajuda] Em um sistema de inventario!
» [AJUDA] Sistema de portas
» [ajuda] Sistema de Sliding (2D)
» Ajuda script de loading
» [Ajuda] Em um sistema de inventario!
» [AJUDA] Sistema de portas
» [ajuda] Sistema de Sliding (2D)
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos