[TUTORIAL] MENU PRINCIPAL - UNITY 5 (5.3 ou superior) (Com UI)
+66
SamonBR
f1ll3rpimpao
AndreDeveloper
merkanbr
UesleiUsl
francisco barroso
kaufergomi
marcos lorhan
kenau
NKKF
ProBrStalker
Mourao
iantessele123
Jack100Scripts
dknoob537
Samuelsk
HappaRXRX
maxcoala
Phph09
Callyde Jr
HPGBR
wesking
flavions14
Unoog
Gregory2017
João Ricardo
DuViDoSo
bruxamissi
LeonSK
tatiara
GameS DoG
cody0033
mtmateus
PauloFR
Crash Psycho
JuR
Lotheadric
joabr
Jacozzinh
dstaroski
tom ramber
abcdQQ
RenanMSV
MeverPlays
Flodotelito
George Lucas Vieira
Lucas Garcia Frade
WiredD
Hcwc
dementeasdas
rodrigopt9
jaqspw
Viviane keiko
Ariiany
larissatds
Weslley
JuuzoTM
anizioNoob
dhiegolucio
dfop02
edugamer69
Maloney Silva
rafaelllsd
GuiMVP
c0hlera
MarcosSchultz
70 participantes
Página 1 de 5
Página 1 de 5 • 1, 2, 3, 4, 5
[TUTORIAL] MENU PRINCIPAL - UNITY 5 (5.3 ou superior) (Com UI)
Fala galera, fiz este tutorial ensinando como fazer um menu principal na Unity 5 utilizando a nova UI...
Vídeo ensinando como usar
Script:
Se você quiser fazer um Loading do menu principal para a sua cena de jogo, pode acompanhar o que foi feito neste tópico :D
https://www.schultzgames.com/t2125-ajuda-script-de-loading#14818
Vídeo ensinando como usar
Script:
- Código:
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using UnityEngine.SceneManagement;
using System.Collections.Generic;
using System.Linq;
public class MENU : MonoBehaviour {
public Button BotaoJogar, BotaoOpcoes, BotaoSair;
[Space(20)]
public Slider BarraVolume;
public Toggle CaixaModoJanela;
public Dropdown Resolucoes, Qualidades;
public Button BotaoVoltar, BotaoSalvarPref;
[Space(20)]
public Text textoVol;
public string nomeCenaJogo = "CENA1";
private string nomeDaCena;
private float VOLUME;
private int qualidadeGrafica, modoJanelaAtivo, resolucaoSalveIndex;
private bool telaCheiaAtivada;
private Resolution[] resolucoesSuportadas;
void Awake() {
DontDestroyOnLoad(transform.gameObject);
resolucoesSuportadas = Screen.resolutions;
}
void Start() {
Opcoes(false);
ChecarResolucoes();
AjustarQualidades();
//
if (PlayerPrefs.HasKey("RESOLUCAO")) {
int numResoluc = PlayerPrefs.GetInt("RESOLUCAO");
if (resolucoesSuportadas.Length <= numResoluc) {
PlayerPrefs.DeleteKey("RESOLUCAO");
}
}
//
nomeDaCena = SceneManager.GetActiveScene().name;
Cursor.visible = true;
Time.timeScale = 1;
//
BarraVolume.minValue = 0;
BarraVolume.maxValue = 1;
//=============== SAVES===========//
if (PlayerPrefs.HasKey("VOLUME")) {
VOLUME = PlayerPrefs.GetFloat("VOLUME");
BarraVolume.value = VOLUME;
AudioListener.volume = VOLUME;
} else {
PlayerPrefs.SetFloat("VOLUME", 1);
BarraVolume.value = 1;
}
//=============MODO JANELA===========//
if (PlayerPrefs.HasKey("modoJanela")) {
modoJanelaAtivo = PlayerPrefs.GetInt("modoJanela");
if (modoJanelaAtivo == 1) {
Screen.fullScreen = false;
CaixaModoJanela.isOn = true;
} else {
Screen.fullScreen = true;
CaixaModoJanela.isOn = false;
}
} else {
modoJanelaAtivo = 0;
PlayerPrefs.SetInt("modoJanela", modoJanelaAtivo);
CaixaModoJanela.isOn = false;
Screen.fullScreen = true;
}
//========RESOLUCOES========//
if (modoJanelaAtivo == 1) {
telaCheiaAtivada = false;
} else {
telaCheiaAtivada = true;
}
if (PlayerPrefs.HasKey("RESOLUCAO")) {
resolucaoSalveIndex = PlayerPrefs.GetInt("RESOLUCAO");
Screen.SetResolution(resolucoesSuportadas[resolucaoSalveIndex].width, resolucoesSuportadas[resolucaoSalveIndex].height, telaCheiaAtivada);
Resolucoes.value = resolucaoSalveIndex;
} else {
resolucaoSalveIndex = (resolucoesSuportadas.Length - 1);
Screen.SetResolution(resolucoesSuportadas[resolucaoSalveIndex].width, resolucoesSuportadas[resolucaoSalveIndex].height, telaCheiaAtivada);
PlayerPrefs.SetInt("RESOLUCAO", resolucaoSalveIndex);
Resolucoes.value = resolucaoSalveIndex;
}
//=========QUALIDADES=========//
if (PlayerPrefs.HasKey("qualidadeGrafica")) {
qualidadeGrafica = PlayerPrefs.GetInt("qualidadeGrafica");
QualitySettings.SetQualityLevel(qualidadeGrafica);
Qualidades.value = qualidadeGrafica;
} else {
QualitySettings.SetQualityLevel((QualitySettings.names.Length - 1));
qualidadeGrafica = (QualitySettings.names.Length - 1);
PlayerPrefs.SetInt("qualidadeGrafica", qualidadeGrafica);
Qualidades.value = qualidadeGrafica;
}
// =========SETAR BOTOES==========//
BotaoJogar.onClick = new Button.ButtonClickedEvent();
BotaoOpcoes.onClick = new Button.ButtonClickedEvent();
BotaoSair.onClick = new Button.ButtonClickedEvent();
BotaoVoltar.onClick = new Button.ButtonClickedEvent();
BotaoSalvarPref.onClick = new Button.ButtonClickedEvent();
BotaoJogar.onClick.AddListener(() => Jogar());
BotaoOpcoes.onClick.AddListener(() => Opcoes(true));
BotaoSair.onClick.AddListener(() => Sair());
BotaoVoltar.onClick.AddListener(() => Opcoes(false));
BotaoSalvarPref.onClick.AddListener(() => SalvarPreferencias());
}
//=========VOIDS DE CHECAGEM==========//
private void ChecarResolucoes() {
Resolution[] resolucoesSuportadas = Screen.resolutions;
Resolucoes.options.Clear();
for (int y = 0; y < resolucoesSuportadas.Length; y++) {
Resolucoes.options.Add(new Dropdown.OptionData() { text = resolucoesSuportadas[y].width + "x" + resolucoesSuportadas[y].height });
}
Resolucoes.captionText.text = "Resolucao";
}
private void AjustarQualidades() {
string[] nomes = QualitySettings.names;
Qualidades.options.Clear();
for (int y = 0; y < nomes.Length; y++) {
Qualidades.options.Add(new Dropdown.OptionData() { text = nomes[y] });
}
Qualidades.captionText.text = "Qualidade";
}
private void Opcoes(bool ativarOP) {
BotaoJogar.gameObject.SetActive(!ativarOP);
BotaoOpcoes.gameObject.SetActive(!ativarOP);
BotaoSair.gameObject.SetActive(!ativarOP);
//
textoVol.gameObject.SetActive(ativarOP);
BarraVolume.gameObject.SetActive(ativarOP);
CaixaModoJanela.gameObject.SetActive(ativarOP);
Resolucoes.gameObject.SetActive(ativarOP);
Qualidades.gameObject.SetActive(ativarOP);
BotaoVoltar.gameObject.SetActive(ativarOP);
BotaoSalvarPref.gameObject.SetActive(ativarOP);
}
//=========VOIDS DE SALVAMENTO==========//
private void SalvarPreferencias() {
if (CaixaModoJanela.isOn == true) {
modoJanelaAtivo = 1;
telaCheiaAtivada = false;
} else {
modoJanelaAtivo = 0;
telaCheiaAtivada = true;
}
PlayerPrefs.SetFloat("VOLUME", BarraVolume.value);
PlayerPrefs.SetInt("qualidadeGrafica", Qualidades.value);
PlayerPrefs.SetInt("modoJanela", modoJanelaAtivo);
PlayerPrefs.SetInt("RESOLUCAO", Resolucoes.value);
resolucaoSalveIndex = Resolucoes.value;
AplicarPreferencias();
}
private void AplicarPreferencias() {
VOLUME = PlayerPrefs.GetFloat("VOLUME");
AudioListener.volume = VOLUME;
QualitySettings.SetQualityLevel(PlayerPrefs.GetInt("qualidadeGrafica"));
Screen.SetResolution(resolucoesSuportadas[resolucaoSalveIndex].width, resolucoesSuportadas[resolucaoSalveIndex].height, telaCheiaAtivada);
}
//===========VOIDS NORMAIS=========//
void Update() {
if (SceneManager.GetActiveScene().name != nomeDaCena) {
AudioListener.volume = VOLUME;
Destroy(gameObject);
}
}
private void Jogar() {
SceneManager.LoadScene(nomeCenaJogo);
}
private void Sair() {
Application.Quit();
}
}
Se você quiser fazer um Loading do menu principal para a sua cena de jogo, pode acompanhar o que foi feito neste tópico :D
https://www.schultzgames.com/t2125-ajuda-script-de-loading#14818
Última edição por MarcosSchultz em Seg Out 28, 2019 3:01 pm, editado 5 vez(es)
Re: [TUTORIAL] MENU PRINCIPAL - UNITY 5 (5.3 ou superior) (Com UI)
Parabéns, muito bem explicado o tutorial. Tava precisando aprender esses novo menu pq até hoje ainda tava usando o legacy. Só uma pergunta.. geralmente faço o menu em uma resolução mas depois que faço a build e vou jogar em outra resolução os botões ficam deformados, principalmente depois de colocar uma texura. Tem alguma dica pra ajudar a resolver isso?
c0hlera- Iniciante
- PONTOS : 3320
REPUTAÇÃO : 0
Respeito as regras :
Re: [TUTORIAL] MENU PRINCIPAL - UNITY 5 (5.3 ou superior) (Com UI)
c0hlera escreveu:Parabéns, muito bem explicado o tutorial. Tava precisando aprender esses novo menu pq até hoje ainda tava usando o legacy. Só uma pergunta.. geralmente faço o menu em uma resolução mas depois que faço a build e vou jogar em outra resolução os botões ficam deformados, principalmente depois de colocar uma texura. Tem alguma dica pra ajudar a resolver isso?
Re: [TUTORIAL] MENU PRINCIPAL - UNITY 5 (5.3 ou superior) (Com UI)
Wesley Leal escreveu:Está dando erro!
Você precisa estar utilizando Unity 5.3 ou superior por causa do SceneManagement
Re: [TUTORIAL] MENU PRINCIPAL - UNITY 5 (5.3 ou superior) (Com UI)
Lindo...
(tinha dado um erro mas ja resolvi ai apaguei a mensagem :D...)
(tinha dado um erro mas ja resolvi ai apaguei a mensagem :D...)
GuiMVP- Iniciante
- PONTOS : 3311
REPUTAÇÃO : 0
Respeito as regras :
Re: [TUTORIAL] MENU PRINCIPAL - UNITY 5 (5.3 ou superior) (Com UI)
Utilize a mais atual: 5.3.1
https://unity3d.com/pt/get-unity/download?ref=personal
Versões anteriores a 5.3 darão erro por causa do Manager
https://unity3d.com/pt/get-unity/download?ref=personal
Versões anteriores a 5.3 darão erro por causa do Manager
Re: [TUTORIAL] MENU PRINCIPAL - UNITY 5 (5.3 ou superior) (Com UI)
Tutorial ajudou bastante, não sabia que dava para usar o botão sem configura o OnClick() dele.
rafaelllsd- ProgramadorMaster
- PONTOS : 5245
REPUTAÇÃO : 507
Idade : 24
Áreas de atuação : Unity, Audacity, Blender, Gimp, C#, JS, MySQL.
Respeito as regras :
Re: [TUTORIAL] MENU PRINCIPAL - UNITY 5 (5.3 ou superior) (Com UI)
rafaelllsd escreveu:Tutorial ajudou bastante, não sabia que dava para usar o botão sem configura o OnClick() dele.
Da e eh muito útil, principalmente para fazer coisas como aquela DropDown que detecta as resoluções e se ajusta de acordo com cada computador
Re: [TUTORIAL] MENU PRINCIPAL - UNITY 5 (5.3 ou superior) (Com UI)
Se o jogo tiver duas ou mais fases, vai ser carregado automaticamente? Ou tem de colocar o nome de cada uma, caso afirmativo, onde vou inserir o nome?
Maloney Silva- Iniciante
- PONTOS : 3225
REPUTAÇÃO : 1
Respeito as regras :
Re: [TUTORIAL] MENU PRINCIPAL - UNITY 5 (5.3 ou superior) (Com UI)
Esse menu é feito para uma cena inicial apenas... o sistema de gerenciamento de cenas é outra coisa muito aparte, totalmente dependente do seu jogoMaloney Silva escreveu:Se o jogo tiver duas ou mais fases, vai ser carregado automaticamente? Ou tem de colocar o nome de cada uma, caso afirmativo, onde vou inserir o nome?
Re: [TUTORIAL] MENU PRINCIPAL - UNITY 5 (5.3 ou superior) (Com UI)
Boa noite Marcos,
Ano passado me deparei com a UNITY, nao vou fazer aqui elogios a ela pois não sou indicado para isso, os mais renomados programadores de jogos já o fazem brilhantemente. resolvi aprender alguma coisa para tentar incentivar algum aluno, sou professor de Geografia, para que entrassem no mundo dos GAMES, mas, infelizmente, nenhum até agora se interessou. com muito custo construí um terreno, coloquei um carro que vem na própria UNITY, ainda sem textura, coloquei uma arma nesse carro, coloquei alguns Robots que se mexem, mas não andam, penso em tentar programá-los, mas de programação sou muito leigo e nem tenho vontade e nem tempo para aprender. Coloquei tudo num site que tenho e esta funcionando, serve como uma passeio entre floresta e montanhas, tem vária rodovias, enfim ficou agradável de se ver. Tenho vontade de desenvolver um projetinho, mas a programação é o problema, você teria interesse de desenvolver os scripts e caso necessário alguma animação? Se tiver entre em contato pelo meu email para ver sobre a possibilidade. Tenho interesse também naquele script que voce comenta que está em torno de 800 linhas, achei muito interessante, dependendo do preço compro também. Obrigado, Luiz.
Ano passado me deparei com a UNITY, nao vou fazer aqui elogios a ela pois não sou indicado para isso, os mais renomados programadores de jogos já o fazem brilhantemente. resolvi aprender alguma coisa para tentar incentivar algum aluno, sou professor de Geografia, para que entrassem no mundo dos GAMES, mas, infelizmente, nenhum até agora se interessou. com muito custo construí um terreno, coloquei um carro que vem na própria UNITY, ainda sem textura, coloquei uma arma nesse carro, coloquei alguns Robots que se mexem, mas não andam, penso em tentar programá-los, mas de programação sou muito leigo e nem tenho vontade e nem tempo para aprender. Coloquei tudo num site que tenho e esta funcionando, serve como uma passeio entre floresta e montanhas, tem vária rodovias, enfim ficou agradável de se ver. Tenho vontade de desenvolver um projetinho, mas a programação é o problema, você teria interesse de desenvolver os scripts e caso necessário alguma animação? Se tiver entre em contato pelo meu email para ver sobre a possibilidade. Tenho interesse também naquele script que voce comenta que está em torno de 800 linhas, achei muito interessante, dependendo do preço compro também. Obrigado, Luiz.
Maloney Silva- Iniciante
- PONTOS : 3225
REPUTAÇÃO : 1
Respeito as regras :
Re: [TUTORIAL] MENU PRINCIPAL - UNITY 5 (5.3 ou superior) (Com UI)
Maloney Silva escreveu:Boa noite Marcos,
Ano passado me deparei com a UNITY, nao vou fazer aqui elogios a ela pois não sou indicado para isso, os mais renomados programadores de jogos já o fazem brilhantemente. resolvi aprender alguma coisa para tentar incentivar algum aluno, sou professor de Geografia, para que entrassem no mundo dos GAMES, mas, infelizmente, nenhum até agora se interessou. com muito custo construí um terreno, coloquei um carro que vem na própria UNITY, ainda sem textura, coloquei uma arma nesse carro, coloquei alguns Robots que se mexem, mas não andam, penso em tentar programá-los, mas de programação sou muito leigo e nem tenho vontade e nem tempo para aprender. Coloquei tudo num site que tenho e esta funcionando, serve como uma passeio entre floresta e montanhas, tem vária rodovias, enfim ficou agradável de se ver. Tenho vontade de desenvolver um projetinho, mas a programação é o problema, você teria interesse de desenvolver os scripts e caso necessário alguma animação? Se tiver entre em contato pelo meu email para ver sobre a possibilidade. Tenho interesse também naquele script que voce comenta que está em torno de 800 linhas, achei muito interessante, dependendo do preço compro também. Obrigado, Luiz.
Olá, estou começando a desenvolver assets, más vai meio devagar pois tenho pouco tempo livre. No entanto, já vou te adiantar uma coisa, para qualquer projeto que esteja pensando em comprar assets ou coisas do tipo, procure conversar com um programador antes, via skype ou sei lah, para ter uma idéia da verdadeira dimensão e complexidade do projeto.
Se acha que o projeto tem complexidade 5, multiplique este valor por 10. Parece assustador, más é assim mesmo...
Bom, pense que estou fazendo o sistema mais completo existente na Asset Store sobre veículos, realmente não terá outro mais completo, más, estou a mais de um mês fazendo ele... Sempre aparece uma coisinha ali ou aqui que da dor de cabeça e exige muito trabalho lógico para ser resolvido
Re: [TUTORIAL] MENU PRINCIPAL - UNITY 5 (5.3 ou superior) (Com UI)
MarcosSchultz escreveu:Maloney Silva escreveu:Boa noite Marcos,
Ano passado me deparei com a UNITY, nao vou fazer aqui elogios a ela pois não sou indicado para isso, os mais renomados programadores de jogos já o fazem brilhantemente. resolvi aprender alguma coisa para tentar incentivar algum aluno, sou professor de Geografia, para que entrassem no mundo dos GAMES, mas, infelizmente, nenhum até agora se interessou. com muito custo construí um terreno, coloquei um carro que vem na própria UNITY, ainda sem textura, coloquei uma arma nesse carro, coloquei alguns Robots que se mexem, mas não andam, penso em tentar programá-los, mas de programação sou muito leigo e nem tenho vontade e nem tempo para aprender. Coloquei tudo num site que tenho e esta funcionando, serve como uma passeio entre floresta e montanhas, tem vária rodovias, enfim ficou agradável de se ver. Tenho vontade de desenvolver um projetinho, mas a programação é o problema, você teria interesse de desenvolver os scripts e caso necessário alguma animação? Se tiver entre em contato pelo meu email para ver sobre a possibilidade. Tenho interesse também naquele script que voce comenta que está em torno de 800 linhas, achei muito interessante, dependendo do preço compro também. Obrigado, Luiz.
Olá, estou começando a desenvolver assets, más vai meio devagar pois tenho pouco tempo livre. No entanto, já vou te adiantar uma coisa, para qualquer projeto que esteja pensando em comprar assets ou coisas do tipo, procure conversar com um programador antes, via skype ou sei lah, para ter uma idéia da verdadeira dimensão e complexidade do projeto.
Se acha que o projeto tem complexidade 5, multiplique este valor por 10. Parece assustador, más é assim mesmo...
Bom, pense que estou fazendo o sistema mais completo existente na Asset Store sobre veículos, realmente não terá outro mais completo, más, estou a mais de um mês fazendo ele... Sempre aparece uma coisinha ali ou aqui que da dor de cabeça e exige muito trabalho lógico para ser resolvido
Observei bem a explicação que você fez sobre aquele sistema, achei bem interessante, tenho interesse, se o valor for viável para mim. Um dos ítens que penso em colocar é um sistema de transito para que a estrada do jogo fique movimentada
enquanto o personagem trafega e enfrenta os perigos que forem adicionados. Sistemas assim parece que tem tem na Asset da Unity, vi um outro dia com 15 carros.
Único programador que achei mais sério é você, se puder num momento que tiver um tempinho poderemos conversar e você ma explica o que for possível sobre esta complexidade que mencionou.
Grato pela atenção, Luiz.
Maloney Silva- Iniciante
- PONTOS : 3225
REPUTAÇÃO : 1
Respeito as regras :
Re: [TUTORIAL] MENU PRINCIPAL - UNITY 5 (5.3 ou superior) (Com UI)
Observei bem a explicação que você fez sobre aquele sistema, achei bem interessante, tenho interesse, se o valor for viável para mim. Um dos ítens que penso em colocar é um sistema de transito para que a estrada do jogo fique movimentada
enquanto o personagem trafega e enfrenta os perigos que forem adicionados. Sistemas assim parece que tem tem na Asset da Unity, vi um outro dia com 15 carros.
Único programador que achei mais sério é você, se puder num momento que tiver um tempinho poderemos conversar e você ma explica o que for possível sobre esta complexidade que mencionou.
Grato pela atenção, Luiz.
enquanto o personagem trafega e enfrenta os perigos que forem adicionados. Sistemas assim parece que tem tem na Asset da Unity, vi um outro dia com 15 carros.
Único programador que achei mais sério é você, se puder num momento que tiver um tempinho poderemos conversar e você ma explica o que for possível sobre esta complexidade que mencionou.
Grato pela atenção, Luiz.
Maloney Silva- Iniciante
- PONTOS : 3225
REPUTAÇÃO : 1
Respeito as regras :
Re: [TUTORIAL] MENU PRINCIPAL - UNITY 5 (5.3 ou superior) (Com UI)
Maloney Silva escreveu:Observei bem a explicação que você fez sobre aquele sistema, achei bem interessante, tenho interesse, se o valor for viável para mim. Um dos ítens que penso em colocar é um sistema de transito para que a estrada do jogo fique movimentada
enquanto o personagem trafega e enfrenta os perigos que forem adicionados. Sistemas assim parece que tem tem na Asset da Unity, vi um outro dia com 15 carros.
Único programador que achei mais sério é você, se puder num momento que tiver um tempinho poderemos conversar e você ma explica o que for possível sobre esta complexidade que mencionou.
Grato pela atenção, Luiz.
Tem quase 2 dúzias de pessoas interessadas em sistema de transito e veículos, etc, etc... Más só conseguirei dar algum tipo de retorno depois que eu terminar os assets, então talvez demore um pouco... más já tem bastante coisa pronta.
Re: [TUTORIAL] MENU PRINCIPAL - UNITY 5 (5.3 ou superior) (Com UI)
sergiocouto escreveu:Fera como pediu vou postar aqui a dúvida, neste script como o antigo de 2015 que traqta sobre o menu is 2 modelos que usei ao entrar no game pelo menu não consigo voltar para o mesmo ou seja normalmente pressionando ESC, voltaria mas nestes scripts não acontece você poderia explicar-me se não existe mesmo esta possibilidade ou estou fazendo algo errado ? .
Na verdade, você precisa criar esse menu de volta...
O script só faz o menu principal... Se você quiser um menu que exista durante o jogo, já trata-se de outra coisa, que é um "Menu Pause"
Re: [TUTORIAL] MENU PRINCIPAL - UNITY 5 (5.3 ou superior) (Com UI)
esta dando erro quando eu clico em jogar, mudei o nome pra sena que eu vou usar e n vai
edugamer69- Avançado
- PONTOS : 3667
REPUTAÇÃO : 16
Idade : 27
Respeito as regras :
Re: [TUTORIAL] MENU PRINCIPAL - UNITY 5 (5.3 ou superior) (Com UI)
Você não jogou as cenas na aba "File>Build Settings" .-.
edugamer69- Avançado
- PONTOS : 3667
REPUTAÇÃO : 16
Idade : 27
Respeito as regras :
Re: [TUTORIAL] MENU PRINCIPAL - UNITY 5 (5.3 ou superior) (Com UI)
Eu tentei criar o menu e deu os seguintes erros no script:
1º - Primeiro ele diz que o uso desses 3 aqui é nenecessário.
using System.Collections;
using System.Collections.Generic;
using System.Linq;
2º - Ele da 9 problemas diferentes com LoadLevel, uns diz que é obsoleto, outros manda eu usar maneiras diferentes...
Poderia me ajudar?
1º - Primeiro ele diz que o uso desses 3 aqui é nenecessário.
using System.Collections;
using System.Collections.Generic;
using System.Linq;
2º - Ele da 9 problemas diferentes com LoadLevel, uns diz que é obsoleto, outros manda eu usar maneiras diferentes...
Poderia me ajudar?
dfop02- Avançado
- PONTOS : 3262
REPUTAÇÃO : 2
Idade : 27
Respeito as regras :
Re: [TUTORIAL] MENU PRINCIPAL - UNITY 5 (5.3 ou superior) (Com UI)
dfop02 escreveu:Eu tentei criar o menu e deu os seguintes erros no script:
1º - Primeiro ele diz que o uso desses 3 aqui é nenecessário.
using System.Collections;
using System.Collections.Generic;
using System.Linq;
2º - Ele da 9 problemas diferentes com LoadLevel, uns diz que é obsoleto, outros manda eu usar maneiras diferentes...
Poderia me ajudar?
O script está ao no tópico, o mais atual possível... Não estou usando LoadLevel, é o SceneManager. Não estou entendendo como está tendo estes erros com o script deste tópico.
Re: [TUTORIAL] MENU PRINCIPAL - UNITY 5 (5.3 ou superior) (Com UI)
Sei que não tem muito a ver, mas tentei fazer um progress bar usando o SceneManager.LoadLevelAsync, mas meu unity simplesmente trava. Sabe me dizer o que acontece?
dhiegolucio- Iniciante
- PONTOS : 3194
REPUTAÇÃO : 0
Respeito as regras :
Re: [TUTORIAL] MENU PRINCIPAL - UNITY 5 (5.3 ou superior) (Com UI)
Seria realmente interessante criar um tópico específico, más vou te responder mesmo assim.dhiegolucio escreveu:Sei que não tem muito a ver, mas tentei fazer um progress bar usando o SceneManager.LoadLevelAsync, mas meu unity simplesmente trava. Sabe me dizer o que acontece?
Recentemente fiz um async com o Manager, e funcionou tranquilamente, da uma olhada:
- Código:
using UnityEngine;
using System.Collections;
using UnityEngine.SceneManagement;
public class Loading : MonoBehaviour {
[Header("Nome da cena a ser carregada")]
public string cenaACarregar;
[Space(20)]
public Texture barraDeProgresso;
public string textoLoad = "Carregando:";
public Color corDoTexto = Color.red;
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 = 4f;
[Range (-8f,4f)]
public float deslocarTextoX = 2;
[Range (-4.5f,4.5f)]
public float deslocarTextoY = 3;
private bool mostrarCarregamento = false;
private int progresso = 0;
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 OnGUI (){
if (mostrarCarregamento == true) {
GUI.contentColor = corDoTexto;
GUI.skin.font = Fonte;
GUI.skin.label.fontSize = (int)(Screen.height/50*tamanhoDoTexto);
//TEXTURA 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),textoLoad + " " + 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), altura), barraDeProgresso);
}
}
}
Basta utilizar qualquer botão para chamar a void "Carregar"
Re: [TUTORIAL] MENU PRINCIPAL - UNITY 5 (5.3 ou superior) (Com UI)
Tentei fazer isso e aqui travou.
Fazendo alguns testes percebi que o problema está no while (!carregamento.isDone).
Joguei para o void update e lá funcionou usando if(carregamento.isDone).
Estranho demais....
Fazendo alguns testes percebi que o problema está no while (!carregamento.isDone).
Joguei para o void update e lá funcionou usando if(carregamento.isDone).
Estranho demais....
dhiegolucio- Iniciante
- PONTOS : 3194
REPUTAÇÃO : 0
Respeito as regras :
Re: [TUTORIAL] MENU PRINCIPAL - UNITY 5 (5.3 ou superior) (Com UI)
- 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(20)]
public Image barraDeProgresso;
public Text textoProgresso;
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;
}
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;
}
}
}
Este script está atualizado para uso de UI, talvez funcione melhor ainda
Re: [TUTORIAL] MENU PRINCIPAL - UNITY 5 (5.3 ou superior) (Com UI)
Sim! funcionou!
Descobri também o que aconteceu: o yield return null estava fora do while, por isso ele travava.
Muitissimo obrigado o/
Descobri também o que aconteceu: o yield return null estava fora do while, por isso ele travava.
Muitissimo obrigado o/
dhiegolucio- Iniciante
- PONTOS : 3194
REPUTAÇÃO : 0
Respeito as regras :
Re: [TUTORIAL] MENU PRINCIPAL - UNITY 5 (5.3 ou superior) (Com UI)
mano tem como vc "montar" o script não tenho o .net farmework ainda (não direi pq) mas podia fazer isso ae plz e passa um link de download
anizioNoob- Avançado
- PONTOS : 3480
REPUTAÇÃO : 17
Idade : 22
Áreas de atuação : Sei programar animators, e modelar no sketchup
Respeito as regras :
Re: [TUTORIAL] MENU PRINCIPAL - UNITY 5 (5.3 ou superior) (Com UI)
Pra min ta dando esse erro ;-; ajudem porfavor
"IndexOutOfRangeException: Array index is out of range."
Imagem: https://2img.net/h/oi67.tinypic.com/25iwtwy.png[/IMG]
"IndexOutOfRangeException: Array index is out of range."
Imagem: https://2img.net/h/oi67.tinypic.com/25iwtwy.png[/IMG]
JuuzoTM- Iniciante
- PONTOS : 3121
REPUTAÇÃO : 0
Respeito as regras :
Re: [TUTORIAL] MENU PRINCIPAL - UNITY 5 (5.3 ou superior) (Com UI)
JuuzoTM escreveu:Pra min ta dando esse erro ;-; ajudem porfavor
"IndexOutOfRangeException: Array index is out of range."
Imagem: https://2img.net/h/oi67.tinypic.com/25iwtwy.png[/IMG]
Não consegui ver a imagem, não está aparecendo por este link que você postou.
Poderia postar o erro todo e dizer em qual linha do scritp original o erro é apontado?
Re: [TUTORIAL] MENU PRINCIPAL - UNITY 5 (5.3 ou superior) (Com UI)
Agora paro o ultimo erro e ta dando um,
Null refence exception: Object reference not set to an instance of an object
MENU.Opcoes (Boolean ativarOP) (at Assets/Scripts/MENU.cs:150)
MENU.Start() (at Assets/Scripts/MENU.cs:34
Null refence exception: Object reference not set to an instance of an object
MENU.Opcoes (Boolean ativarOP) (at Assets/Scripts/MENU.cs:150)
MENU.Start() (at Assets/Scripts/MENU.cs:34
JuuzoTM- Iniciante
- PONTOS : 3121
REPUTAÇÃO : 0
Respeito as regras :
Re: [TUTORIAL] MENU PRINCIPAL - UNITY 5 (5.3 ou superior) (Com UI)
Está usando o script correto? Não esqueceu nenhuma parte? Está em C#? Acompanhou o vídeo todo?
Por que o erro da linha 34 é inexistente, já que é um comentário, e o erro da linha 150 também é inexistente, já que para dar erro, deveria ser dentro da void e não na sua chamada
Por que o erro da linha 34 é inexistente, já que é um comentário, e o erro da linha 150 também é inexistente, já que para dar erro, deveria ser dentro da void e não na sua chamada
Re: [TUTORIAL] MENU PRINCIPAL - UNITY 5 (5.3 ou superior) (Com UI)
Volto a da o Ultimo erro amigo =l
IndexOutRangeException: Array index is out of range.
MENU.Start () (at Assets/Scripts/MENU.90
Já criei outra cena,script,recoloquei o Script que tem no topico eu fiz igual no video coloquei os mesmo nomes nos mesmos lugares e pa mais continua dando esse erro ai... e eu to com a verção mais atualizada do Unity... Só se lançou uma nova e eu naos sei...
IndexOutRangeException: Array index is out of range.
MENU.Start () (at Assets/Scripts/MENU.90
Já criei outra cena,script,recoloquei o Script que tem no topico eu fiz igual no video coloquei os mesmo nomes nos mesmos lugares e pa mais continua dando esse erro ai... e eu to com a verção mais atualizada do Unity... Só se lançou uma nova e eu naos sei...
JuuzoTM- Iniciante
- PONTOS : 3121
REPUTAÇÃO : 0
Respeito as regras :
Re: [TUTORIAL] MENU PRINCIPAL - UNITY 5 (5.3 ou superior) (Com UI)
JuuzoTM escreveu:Volto a da o Ultimo erro amigo =l
IndexOutRangeException: Array index is out of range.
MENU.Start () (at Assets/Scripts/MENU.90
Já criei outra cena,script,recoloquei o Script que tem no topico eu fiz igual no video coloquei os mesmo nomes nos mesmos lugares e pa mais continua dando esse erro ai... e eu to com a verção mais atualizada do Unity... Só se lançou uma nova e eu naos sei...
Um índice de um matriz não existe ou não corresponde com o tamanho da matriz
Weslley- Moderador
- PONTOS : 5730
REPUTAÇÃO : 744
Idade : 26
Áreas de atuação : Inversión, Desarrollo, Juegos e Web
Respeito as regras :
Re: [TUTORIAL] MENU PRINCIPAL - UNITY 5 (5.3 ou superior) (Com UI)
Como eu fasso pra concerta isso ???weslleyFx escreveu:JuuzoTM escreveu:Volto a da o Ultimo erro amigo =l
IndexOutRangeException: Array index is out of range.
MENU.Start () (at Assets/Scripts/MENU.90
Já criei outra cena,script,recoloquei o Script que tem no topico eu fiz igual no video coloquei os mesmo nomes nos mesmos lugares e pa mais continua dando esse erro ai... e eu to com a verção mais atualizada do Unity... Só se lançou uma nova e eu naos sei...
Um índice de um matriz não existe ou não corresponde com o tamanho da matriz
JuuzoTM- Iniciante
- PONTOS : 3121
REPUTAÇÃO : 0
Respeito as regras :
Re: [TUTORIAL] MENU PRINCIPAL - UNITY 5 (5.3 ou superior) (Com UI)
a única matriz que o script tem é a das resoluções, e cara, não faz muito sentido ter um erro nessa matriz ali, por que a própria unity que gera ela O.o
posta um print do erro
posta um print do erro
Re: [TUTORIAL] MENU PRINCIPAL - UNITY 5 (5.3 ou superior) (Com UI)
Desculpa, mas gostaria de saber como programar para colocar um botão para créditos usando o UI
larissatds- Iniciante
- PONTOS : 3120
REPUTAÇÃO : 4
Respeito as regras :
Erro inesperado
Ao dar play, está aparecendo a seguinte mensagem:\"NullReferenceException: Object reference not set to an instance of an object escreveu:MENU.Opcoes (Boolean ativarOP) (at Assets/Scripts/MENU.cs:151)MENU.Start () (at Assets/Scripts/MENU.cs:34)"Até semana passada tava pegando tranquilamente e agora não funciona, como posso resolver?Agradeço desde já.
Ariiany- Iniciante
- PONTOS : 3108
REPUTAÇÃO : 0
Respeito as regras :
Re: [TUTORIAL] MENU PRINCIPAL - UNITY 5 (5.3 ou superior) (Com UI)
oi achei o tutorial muito bom, tenho no caso 3 botões, jogar, creditos, e sair. mesmo usando esse script como base não adianta nda funciona, alguem poderia me ajudar?
Viviane keiko- Iniciante
- PONTOS : 3120
REPUTAÇÃO : 0
Respeito as regras :
Re: [TUTORIAL] MENU PRINCIPAL - UNITY 5 (5.3 ou superior) (Com UI)
Qual problema você está tendo? Poderia postar prints do problema? postar prints de como estão os botões, etc...
Re: [TUTORIAL] MENU PRINCIPAL - UNITY 5 (5.3 ou superior) (Com UI)
Meu menu principal e meu menu de pause, ambos feitos com os códigos e tutoriais de você. Começaram a dar um erro do nada, isso que eu não mexi e nem mudei nada.
Então, você sabe o que poderia ser? O erro leva pra linha de código, mas eu não consigo encontrar erro nenhum.
Então, você sabe o que poderia ser? O erro leva pra linha de código, mas eu não consigo encontrar erro nenhum.
jaqspw- Iniciante
- PONTOS : 3105
REPUTAÇÃO : 0
Respeito as regras :
Re: [TUTORIAL] MENU PRINCIPAL - UNITY 5 (5.3 ou superior) (Com UI)
estou com o mesmo erro cara.. se eu tiver alguma resposta/conseguir resolver digo logo alguma coisajaqspw escreveu:Meu menu principal e meu menu de pause, ambos feitos com os códigos e tutoriais de você. Começaram a dar um erro do nada, isso que eu não mexi e nem mudei nada.
Então, você sabe o que poderia ser? O erro leva pra linha de código, mas eu não consigo encontrar erro nenhum.
rodrigopt9- Membro
- PONTOS : 3144
REPUTAÇÃO : 0
Respeito as regras :
Re: [TUTORIAL] MENU PRINCIPAL - UNITY 5 (5.3 ou superior) (Com UI)
Todo mundo esta com mesmo problema '-'
você já verifico se o valor que esta na variável resolucaoSalveIndex corresponde com o tamanho da matriz(array) ?
o erro ocorre porque você esta tentando acessar um índice da matriz que não existe
você já verifico se o valor que esta na variável resolucaoSalveIndex corresponde com o tamanho da matriz(array) ?
o erro ocorre porque você esta tentando acessar um índice da matriz que não existe
Weslley- Moderador
- PONTOS : 5730
REPUTAÇÃO : 744
Idade : 26
Áreas de atuação : Inversión, Desarrollo, Juegos e Web
Respeito as regras :
Re: [TUTORIAL] MENU PRINCIPAL - UNITY 5 (5.3 ou superior) (Com UI)
O erro ocorre por que ao compilar o jogo, você cria um playerPrefs no seu computador, setando resoluções altas... mas dentro do editor, só resoluções como 640x480 são suportadas... então da erro.
O erro pouco interfere na real, mas para evitar problemas no editor, use este código atualizado:
O erro pouco interfere na real, mas para evitar problemas no editor, use este código atualizado:
- Código:
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using UnityEngine.SceneManagement;
using System.Collections.Generic;
using System.Linq;
public class MENU : MonoBehaviour {
public Button BotaoJogar,BotaoOpcoes,BotaoSair;
[Space(20)]
public Slider BarraVolume;
public Toggle CaixaModoJanela;
public Dropdown Resolucoes, Qualidades;
public Button BotaoVoltar, BotaoSalvarPref;
[Space(20)]
public Text textoVol;
public string nomeCenaJogo = "CENA1";
private string nomeDaCena;
private float VOLUME;
private int qualidadeGrafica, modoJanelaAtivo, resolucaoSalveIndex;
private bool telaCheiaAtivada;
private Resolution[] resolucoesSuportadas;
void Awake(){
DontDestroyOnLoad (transform.gameObject);
resolucoesSuportadas = Screen.resolutions;
}
void Start () {
Opcoes (false);
ChecarResolucoes ();
AjustarQualidades ();
//
if (PlayerPrefs.HasKey ("RESOLUCAO")) {
int numResoluc = PlayerPrefs.GetInt ("RESOLUCAO");
if (resolucoesSuportadas.Length <= numResoluc) {
PlayerPrefs.DeleteKey ("RESOLUCAO");
}
}
//
nomeDaCena = SceneManager.GetActiveScene ().name;
Cursor.visible = true;
Time.timeScale = 1;
//
BarraVolume.minValue = 0;
BarraVolume.maxValue = 1;
//=============== SAVES===========//
if (PlayerPrefs.HasKey ("VOLUME")) {
VOLUME = PlayerPrefs.GetFloat ("VOLUME");
BarraVolume.value = VOLUME;
} else {
PlayerPrefs.SetFloat ("VOLUME", 1);
BarraVolume.value = 1;
}
//=============MODO JANELA===========//
if (PlayerPrefs.HasKey ("modoJanela")) {
modoJanelaAtivo = PlayerPrefs.GetInt ("modoJanela");
if (modoJanelaAtivo == 1) {
Screen.fullScreen = false;
CaixaModoJanela.isOn = true;
} else {
Screen.fullScreen = true;
CaixaModoJanela.isOn = false;
}
} else {
modoJanelaAtivo = 0;
PlayerPrefs.SetInt ("modoJanela", modoJanelaAtivo);
CaixaModoJanela.isOn = false;
Screen.fullScreen = true;
}
//========RESOLUCOES========//
if (modoJanelaAtivo == 1) {
telaCheiaAtivada = false;
} else {
telaCheiaAtivada = true;
}
if (PlayerPrefs.HasKey ("RESOLUCAO")) {
resolucaoSalveIndex = PlayerPrefs.GetInt ("RESOLUCAO");
Screen.SetResolution(resolucoesSuportadas[resolucaoSalveIndex].width,resolucoesSuportadas[resolucaoSalveIndex].height,telaCheiaAtivada);
Resolucoes.value = resolucaoSalveIndex;
} else {
resolucaoSalveIndex = (resolucoesSuportadas.Length -1);
Screen.SetResolution(resolucoesSuportadas[resolucaoSalveIndex].width,resolucoesSuportadas[resolucaoSalveIndex].height,telaCheiaAtivada);
PlayerPrefs.SetInt ("RESOLUCAO", resolucaoSalveIndex);
Resolucoes.value = resolucaoSalveIndex;
}
//=========QUALIDADES=========//
if (PlayerPrefs.HasKey ("qualidadeGrafica")) {
qualidadeGrafica = PlayerPrefs.GetInt ("qualidadeGrafica");
QualitySettings.SetQualityLevel(qualidadeGrafica);
Qualidades.value = qualidadeGrafica;
} else {
QualitySettings.SetQualityLevel((QualitySettings.names.Length-1));
qualidadeGrafica = (QualitySettings.names.Length-1);
PlayerPrefs.SetInt ("qualidadeGrafica", qualidadeGrafica);
Qualidades.value = qualidadeGrafica;
}
// =========SETAR BOTOES==========//
BotaoJogar.onClick = new Button.ButtonClickedEvent();
BotaoOpcoes.onClick = new Button.ButtonClickedEvent();
BotaoSair.onClick = new Button.ButtonClickedEvent();
BotaoVoltar.onClick = new Button.ButtonClickedEvent();
BotaoSalvarPref.onClick = new Button.ButtonClickedEvent();
BotaoJogar.onClick.AddListener(() => Jogar());
BotaoOpcoes.onClick.AddListener(() => Opcoes(true));
BotaoSair.onClick.AddListener(() => Sair());
BotaoVoltar.onClick.AddListener(() => Opcoes(false));
BotaoSalvarPref.onClick.AddListener(() => SalvarPreferencias());
}
//=========VOIDS DE CHECAGEM==========//
private void ChecarResolucoes(){
Resolution[] resolucoesSuportadas = Screen.resolutions;
Resolucoes.options.Clear ();
for(int y = 0; y < resolucoesSuportadas.Length; y++){
Resolucoes.options.Add(new Dropdown.OptionData() { text = resolucoesSuportadas[y].width + "x" + resolucoesSuportadas[y].height });
}
Resolucoes.captionText.text = "Resolucao";
}
private void AjustarQualidades(){
string[] nomes = QualitySettings.names;
Qualidades.options.Clear ();
for(int y = 0; y < nomes.Length; y++){
Qualidades.options.Add(new Dropdown.OptionData() { text = nomes[y] });
}
Qualidades.captionText.text = "Qualidade";
}
private void Opcoes(bool ativarOP){
BotaoJogar.gameObject.SetActive (!ativarOP);
BotaoOpcoes.gameObject.SetActive (!ativarOP);
BotaoSair.gameObject.SetActive (!ativarOP);
//
textoVol.gameObject.SetActive (ativarOP);
BarraVolume.gameObject.SetActive (ativarOP);
CaixaModoJanela.gameObject.SetActive (ativarOP);
Resolucoes.gameObject.SetActive (ativarOP);
Qualidades.gameObject.SetActive (ativarOP);
BotaoVoltar.gameObject.SetActive (ativarOP);
BotaoSalvarPref.gameObject.SetActive (ativarOP);
}
//=========VOIDS DE SALVAMENTO==========//
private void SalvarPreferencias(){
if (CaixaModoJanela.isOn == true) {
modoJanelaAtivo = 1;
telaCheiaAtivada = false;
} else {
modoJanelaAtivo = 0;
telaCheiaAtivada = true;
}
PlayerPrefs.SetFloat ("VOLUME", BarraVolume.value);
PlayerPrefs.SetInt ("qualidadeGrafica", Qualidades.value);
PlayerPrefs.SetInt ("modoJanela", modoJanelaAtivo);
PlayerPrefs.SetInt ("RESOLUCAO", Resolucoes.value);
resolucaoSalveIndex = Resolucoes.value;
AplicarPreferencias ();
}
private void AplicarPreferencias(){
VOLUME = PlayerPrefs.GetFloat ("VOLUME");
QualitySettings.SetQualityLevel(PlayerPrefs.GetInt ("qualidadeGrafica"));
Screen.SetResolution(resolucoesSuportadas[resolucaoSalveIndex].width,resolucoesSuportadas[resolucaoSalveIndex].height,telaCheiaAtivada);
}
//===========VOIDS NORMAIS=========//
void Update(){
if (SceneManager.GetActiveScene ().name != nomeDaCena) {
AudioListener.volume = VOLUME;
Destroy (gameObject);
}
}
private void Jogar(){
SceneManager.LoadScene (nomeCenaJogo);
}
private void Sair(){
Application.Quit ();
}
}
Re: [TUTORIAL] MENU PRINCIPAL - UNITY 5 (5.3 ou superior) (Com UI)
Vlw! Já está funcionando! Foda d+! Muito obrigado mesmo cara, os menus já estão funcionando outra vez! 5*MarcosSchultz escreveu:O erro ocorre por que ao compilar o jogo, você cria um playerPrefs no seu computador, setando resoluções altas... mas dentro do editor, só resoluções como 640x480 são suportadas... então da erro.
O erro pouco interfere na real, mas para evitar problemas no editor, use este código atualizado:
- Código:
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using UnityEngine.SceneManagement;
using System.Collections.Generic;
using System.Linq;
public class MENU : MonoBehaviour {
public Button BotaoJogar,BotaoOpcoes,BotaoSair;
[Space(20)]
public Slider BarraVolume;
public Toggle CaixaModoJanela;
public Dropdown Resolucoes, Qualidades;
public Button BotaoVoltar, BotaoSalvarPref;
[Space(20)]
public Text textoVol;
public string nomeCenaJogo = "CENA1";
private string nomeDaCena;
private float VOLUME;
private int qualidadeGrafica, modoJanelaAtivo, resolucaoSalveIndex;
private bool telaCheiaAtivada;
private Resolution[] resolucoesSuportadas;
void Awake(){
DontDestroyOnLoad (transform.gameObject);
resolucoesSuportadas = Screen.resolutions;
}
void Start () {
Opcoes (false);
ChecarResolucoes ();
AjustarQualidades ();
//
if (PlayerPrefs.HasKey ("RESOLUCAO")) {
int numResoluc = PlayerPrefs.GetInt ("RESOLUCAO");
if (resolucoesSuportadas.Length <= numResoluc) {
PlayerPrefs.DeleteKey ("RESOLUCAO");
}
}
//
nomeDaCena = SceneManager.GetActiveScene ().name;
Cursor.visible = true;
Time.timeScale = 1;
//
BarraVolume.minValue = 0;
BarraVolume.maxValue = 1;
//=============== SAVES===========//
if (PlayerPrefs.HasKey ("VOLUME")) {
VOLUME = PlayerPrefs.GetFloat ("VOLUME");
BarraVolume.value = VOLUME;
} else {
PlayerPrefs.SetFloat ("VOLUME", 1);
BarraVolume.value = 1;
}
//=============MODO JANELA===========//
if (PlayerPrefs.HasKey ("modoJanela")) {
modoJanelaAtivo = PlayerPrefs.GetInt ("modoJanela");
if (modoJanelaAtivo == 1) {
Screen.fullScreen = false;
CaixaModoJanela.isOn = true;
} else {
Screen.fullScreen = true;
CaixaModoJanela.isOn = false;
}
} else {
modoJanelaAtivo = 0;
PlayerPrefs.SetInt ("modoJanela", modoJanelaAtivo);
CaixaModoJanela.isOn = false;
Screen.fullScreen = true;
}
//========RESOLUCOES========//
if (modoJanelaAtivo == 1) {
telaCheiaAtivada = false;
} else {
telaCheiaAtivada = true;
}
if (PlayerPrefs.HasKey ("RESOLUCAO")) {
resolucaoSalveIndex = PlayerPrefs.GetInt ("RESOLUCAO");
Screen.SetResolution(resolucoesSuportadas[resolucaoSalveIndex].width,resolucoesSuportadas[resolucaoSalveIndex].height,telaCheiaAtivada);
Resolucoes.value = resolucaoSalveIndex;
} else {
resolucaoSalveIndex = (resolucoesSuportadas.Length -1);
Screen.SetResolution(resolucoesSuportadas[resolucaoSalveIndex].width,resolucoesSuportadas[resolucaoSalveIndex].height,telaCheiaAtivada);
PlayerPrefs.SetInt ("RESOLUCAO", resolucaoSalveIndex);
Resolucoes.value = resolucaoSalveIndex;
}
//=========QUALIDADES=========//
if (PlayerPrefs.HasKey ("qualidadeGrafica")) {
qualidadeGrafica = PlayerPrefs.GetInt ("qualidadeGrafica");
QualitySettings.SetQualityLevel(qualidadeGrafica);
Qualidades.value = qualidadeGrafica;
} else {
QualitySettings.SetQualityLevel((QualitySettings.names.Length-1));
qualidadeGrafica = (QualitySettings.names.Length-1);
PlayerPrefs.SetInt ("qualidadeGrafica", qualidadeGrafica);
Qualidades.value = qualidadeGrafica;
}
// =========SETAR BOTOES==========//
BotaoJogar.onClick = new Button.ButtonClickedEvent();
BotaoOpcoes.onClick = new Button.ButtonClickedEvent();
BotaoSair.onClick = new Button.ButtonClickedEvent();
BotaoVoltar.onClick = new Button.ButtonClickedEvent();
BotaoSalvarPref.onClick = new Button.ButtonClickedEvent();
BotaoJogar.onClick.AddListener(() => Jogar());
BotaoOpcoes.onClick.AddListener(() => Opcoes(true));
BotaoSair.onClick.AddListener(() => Sair());
BotaoVoltar.onClick.AddListener(() => Opcoes(false));
BotaoSalvarPref.onClick.AddListener(() => SalvarPreferencias());
}
//=========VOIDS DE CHECAGEM==========//
private void ChecarResolucoes(){
Resolution[] resolucoesSuportadas = Screen.resolutions;
Resolucoes.options.Clear ();
for(int y = 0; y < resolucoesSuportadas.Length; y++){
Resolucoes.options.Add(new Dropdown.OptionData() { text = resolucoesSuportadas[y].width + "x" + resolucoesSuportadas[y].height });
}
Resolucoes.captionText.text = "Resolucao";
}
private void AjustarQualidades(){
string[] nomes = QualitySettings.names;
Qualidades.options.Clear ();
for(int y = 0; y < nomes.Length; y++){
Qualidades.options.Add(new Dropdown.OptionData() { text = nomes[y] });
}
Qualidades.captionText.text = "Qualidade";
}
private void Opcoes(bool ativarOP){
BotaoJogar.gameObject.SetActive (!ativarOP);
BotaoOpcoes.gameObject.SetActive (!ativarOP);
BotaoSair.gameObject.SetActive (!ativarOP);
//
textoVol.gameObject.SetActive (ativarOP);
BarraVolume.gameObject.SetActive (ativarOP);
CaixaModoJanela.gameObject.SetActive (ativarOP);
Resolucoes.gameObject.SetActive (ativarOP);
Qualidades.gameObject.SetActive (ativarOP);
BotaoVoltar.gameObject.SetActive (ativarOP);
BotaoSalvarPref.gameObject.SetActive (ativarOP);
}
//=========VOIDS DE SALVAMENTO==========//
private void SalvarPreferencias(){
if (CaixaModoJanela.isOn == true) {
modoJanelaAtivo = 1;
telaCheiaAtivada = false;
} else {
modoJanelaAtivo = 0;
telaCheiaAtivada = true;
}
PlayerPrefs.SetFloat ("VOLUME", BarraVolume.value);
PlayerPrefs.SetInt ("qualidadeGrafica", Qualidades.value);
PlayerPrefs.SetInt ("modoJanela", modoJanelaAtivo);
PlayerPrefs.SetInt ("RESOLUCAO", Resolucoes.value);
resolucaoSalveIndex = Resolucoes.value;
AplicarPreferencias ();
}
private void AplicarPreferencias(){
VOLUME = PlayerPrefs.GetFloat ("VOLUME");
QualitySettings.SetQualityLevel(PlayerPrefs.GetInt ("qualidadeGrafica"));
Screen.SetResolution(resolucoesSuportadas[resolucaoSalveIndex].width,resolucoesSuportadas[resolucaoSalveIndex].height,telaCheiaAtivada);
}
//===========VOIDS NORMAIS=========//
void Update(){
if (SceneManager.GetActiveScene ().name != nomeDaCena) {
AudioListener.volume = VOLUME;
Destroy (gameObject);
}
}
private void Jogar(){
SceneManager.LoadScene (nomeCenaJogo);
}
private void Sair(){
Application.Quit ();
}
}
rodrigopt9- Membro
- PONTOS : 3144
REPUTAÇÃO : 0
Respeito as regras :
Re: [TUTORIAL] MENU PRINCIPAL - UNITY 5 (5.3 ou superior) (Com UI)
MarcosSchultz escreveu:O erro ocorre por que ao compilar o jogo, você cria um playerPrefs no seu computador, setando resoluções altas... mas dentro do editor, só resoluções como 640x480 são suportadas... então da erro.
O erro pouco interfere na real, mas para evitar problemas no editor, use este código atualizado:
- Código:
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using UnityEngine.SceneManagement;
using System.Collections.Generic;
using System.Linq;
public class MENU : MonoBehaviour {
public Button BotaoJogar,BotaoOpcoes,BotaoSair;
[Space(20)]
public Slider BarraVolume;
public Toggle CaixaModoJanela;
public Dropdown Resolucoes, Qualidades;
public Button BotaoVoltar, BotaoSalvarPref;
[Space(20)]
public Text textoVol;
public string nomeCenaJogo = "CENA1";
private string nomeDaCena;
private float VOLUME;
private int qualidadeGrafica, modoJanelaAtivo, resolucaoSalveIndex;
private bool telaCheiaAtivada;
private Resolution[] resolucoesSuportadas;
void Awake(){
DontDestroyOnLoad (transform.gameObject);
resolucoesSuportadas = Screen.resolutions;
}
void Start () {
Opcoes (false);
ChecarResolucoes ();
AjustarQualidades ();
//
if (PlayerPrefs.HasKey ("RESOLUCAO")) {
int numResoluc = PlayerPrefs.GetInt ("RESOLUCAO");
if (resolucoesSuportadas.Length <= numResoluc) {
PlayerPrefs.DeleteKey ("RESOLUCAO");
}
}
//
nomeDaCena = SceneManager.GetActiveScene ().name;
Cursor.visible = true;
Time.timeScale = 1;
//
BarraVolume.minValue = 0;
BarraVolume.maxValue = 1;
//=============== SAVES===========//
if (PlayerPrefs.HasKey ("VOLUME")) {
VOLUME = PlayerPrefs.GetFloat ("VOLUME");
BarraVolume.value = VOLUME;
} else {
PlayerPrefs.SetFloat ("VOLUME", 1);
BarraVolume.value = 1;
}
//=============MODO JANELA===========//
if (PlayerPrefs.HasKey ("modoJanela")) {
modoJanelaAtivo = PlayerPrefs.GetInt ("modoJanela");
if (modoJanelaAtivo == 1) {
Screen.fullScreen = false;
CaixaModoJanela.isOn = true;
} else {
Screen.fullScreen = true;
CaixaModoJanela.isOn = false;
}
} else {
modoJanelaAtivo = 0;
PlayerPrefs.SetInt ("modoJanela", modoJanelaAtivo);
CaixaModoJanela.isOn = false;
Screen.fullScreen = true;
}
//========RESOLUCOES========//
if (modoJanelaAtivo == 1) {
telaCheiaAtivada = false;
} else {
telaCheiaAtivada = true;
}
if (PlayerPrefs.HasKey ("RESOLUCAO")) {
resolucaoSalveIndex = PlayerPrefs.GetInt ("RESOLUCAO");
Screen.SetResolution(resolucoesSuportadas[resolucaoSalveIndex].width,resolucoesSuportadas[resolucaoSalveIndex].height,telaCheiaAtivada);
Resolucoes.value = resolucaoSalveIndex;
} else {
resolucaoSalveIndex = (resolucoesSuportadas.Length -1);
Screen.SetResolution(resolucoesSuportadas[resolucaoSalveIndex].width,resolucoesSuportadas[resolucaoSalveIndex].height,telaCheiaAtivada);
PlayerPrefs.SetInt ("RESOLUCAO", resolucaoSalveIndex);
Resolucoes.value = resolucaoSalveIndex;
}
//=========QUALIDADES=========//
if (PlayerPrefs.HasKey ("qualidadeGrafica")) {
qualidadeGrafica = PlayerPrefs.GetInt ("qualidadeGrafica");
QualitySettings.SetQualityLevel(qualidadeGrafica);
Qualidades.value = qualidadeGrafica;
} else {
QualitySettings.SetQualityLevel((QualitySettings.names.Length-1));
qualidadeGrafica = (QualitySettings.names.Length-1);
PlayerPrefs.SetInt ("qualidadeGrafica", qualidadeGrafica);
Qualidades.value = qualidadeGrafica;
}
// =========SETAR BOTOES==========//
BotaoJogar.onClick = new Button.ButtonClickedEvent();
BotaoOpcoes.onClick = new Button.ButtonClickedEvent();
BotaoSair.onClick = new Button.ButtonClickedEvent();
BotaoVoltar.onClick = new Button.ButtonClickedEvent();
BotaoSalvarPref.onClick = new Button.ButtonClickedEvent();
BotaoJogar.onClick.AddListener(() => Jogar());
BotaoOpcoes.onClick.AddListener(() => Opcoes(true));
BotaoSair.onClick.AddListener(() => Sair());
BotaoVoltar.onClick.AddListener(() => Opcoes(false));
BotaoSalvarPref.onClick.AddListener(() => SalvarPreferencias());
}
//=========VOIDS DE CHECAGEM==========//
private void ChecarResolucoes(){
Resolution[] resolucoesSuportadas = Screen.resolutions;
Resolucoes.options.Clear ();
for(int y = 0; y < resolucoesSuportadas.Length; y++){
Resolucoes.options.Add(new Dropdown.OptionData() { text = resolucoesSuportadas[y].width + "x" + resolucoesSuportadas[y].height });
}
Resolucoes.captionText.text = "Resolucao";
}
private void AjustarQualidades(){
string[] nomes = QualitySettings.names;
Qualidades.options.Clear ();
for(int y = 0; y < nomes.Length; y++){
Qualidades.options.Add(new Dropdown.OptionData() { text = nomes[y] });
}
Qualidades.captionText.text = "Qualidade";
}
private void Opcoes(bool ativarOP){
BotaoJogar.gameObject.SetActive (!ativarOP);
BotaoOpcoes.gameObject.SetActive (!ativarOP);
BotaoSair.gameObject.SetActive (!ativarOP);
//
textoVol.gameObject.SetActive (ativarOP);
BarraVolume.gameObject.SetActive (ativarOP);
CaixaModoJanela.gameObject.SetActive (ativarOP);
Resolucoes.gameObject.SetActive (ativarOP);
Qualidades.gameObject.SetActive (ativarOP);
BotaoVoltar.gameObject.SetActive (ativarOP);
BotaoSalvarPref.gameObject.SetActive (ativarOP);
}
//=========VOIDS DE SALVAMENTO==========//
private void SalvarPreferencias(){
if (CaixaModoJanela.isOn == true) {
modoJanelaAtivo = 1;
telaCheiaAtivada = false;
} else {
modoJanelaAtivo = 0;
telaCheiaAtivada = true;
}
PlayerPrefs.SetFloat ("VOLUME", BarraVolume.value);
PlayerPrefs.SetInt ("qualidadeGrafica", Qualidades.value);
PlayerPrefs.SetInt ("modoJanela", modoJanelaAtivo);
PlayerPrefs.SetInt ("RESOLUCAO", Resolucoes.value);
resolucaoSalveIndex = Resolucoes.value;
AplicarPreferencias ();
}
private void AplicarPreferencias(){
VOLUME = PlayerPrefs.GetFloat ("VOLUME");
QualitySettings.SetQualityLevel(PlayerPrefs.GetInt ("qualidadeGrafica"));
Screen.SetResolution(resolucoesSuportadas[resolucaoSalveIndex].width,resolucoesSuportadas[resolucaoSalveIndex].height,telaCheiaAtivada);
}
//===========VOIDS NORMAIS=========//
void Update(){
if (SceneManager.GetActiveScene ().name != nomeDaCena) {
AudioListener.volume = VOLUME;
Destroy (gameObject);
}
}
private void Jogar(){
SceneManager.LoadScene (nomeCenaJogo);
}
private void Sair(){
Application.Quit ();
}
}
Você teria o atualizado para o menu pause também?
jaqspw- Iniciante
- PONTOS : 3105
REPUTAÇÃO : 0
Respeito as regras :
Re: [TUTORIAL] MENU PRINCIPAL - UNITY 5 (5.3 ou superior) (Com UI)
MARCOS SCHULTZ AJUDA COM O BUG DE CENA Scene 'CENA1' (-1) couldn't be loaded because it has not been added to the build settings or the AssetBundle has not been loaded.
dementeasdas- Iniciante
- PONTOS : 3083
REPUTAÇÃO : 0
Respeito as regras :
Re: [TUTORIAL] MENU PRINCIPAL - UNITY 5 (5.3 ou superior) (Com UI)
dementeasdas escreveu:MARCOS SCHULTZ AJUDA COM O BUG DE CENA Scene 'CENA1' (-1) couldn't be loaded because it has not been added to the build settings or the AssetBundle has not been loaded.
você não colocou a cena nas configurações de compilação
Weslley- Moderador
- PONTOS : 5730
REPUTAÇÃO : 744
Idade : 26
Áreas de atuação : Inversión, Desarrollo, Juegos e Web
Respeito as regras :
Página 1 de 5 • 1, 2, 3, 4, 5
Tópicos semelhantes
» [TUTORIAL] Menu Pause AVANÇADO (Unity 5.3 ou superior)
» [TUTORIAL] Selecionar personagem (Unity 5.3 ou superior)
» [TUTORIAL] Animaçoes "Animation" (UNITY 4 ou Superior )
» [TUTORIAL] Unity 2019.4 ou superior - PRESETS
» [TUTORIAL]"Morte" do personagem (Unity 5.3 ou Superior)
» [TUTORIAL] Selecionar personagem (Unity 5.3 ou superior)
» [TUTORIAL] Animaçoes "Animation" (UNITY 4 ou Superior )
» [TUTORIAL] Unity 2019.4 ou superior - PRESETS
» [TUTORIAL]"Morte" do personagem (Unity 5.3 ou Superior)
Página 1 de 5
Permissões neste sub-fórum
Não podes responder a tópicos