Adicionar um botão!!
3 participantes
Página 1 de 1
Adicionar um botão!!
Como faço para adicionar mais um botão para poder colocar os créditos? Pois ele tem apenas 3 botões o de "Jogar" "Opções" "Sair" e eu gostaria de colocar um para colocar os créditos e tals!!!
- 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(ScriptFases.faseQueFicou);
}
private void Sair(){
Application.Quit ();
}
}
Edivandro2706- Avançado
- PONTOS : 2089
REPUTAÇÃO : 4
Respeito as regras :
Re: Adicionar um botão!!
Na linha 10 é so adicionar mais um botão com o nome "BotaoCreditos":Edivandro2706 escreveu:Como faço para adicionar mais um botão para poder colocar os créditos? Pois ele tem apenas 3 botões o de "Jogar" "Opções" "Sair" e eu gostaria de colocar um para colocar os créditos e tals!!!
- 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(ScriptFases.faseQueFicou);
}
private void Sair(){
Application.Quit ();
}
}
- Código:
public Button BotaoJogar,BotaoOpcoes,BotaoSair,BotaoCreditos;
Re: Adicionar um botão!!
Me refiro a configurar ele também, para que quando eu entro nesse botão eu consiga inserir um texto e imagens!!
Edivandro2706- Avançado
- PONTOS : 2089
REPUTAÇÃO : 4
Respeito as regras :
Re: Adicionar um botão!!
Por que não usa os botões da UI? É bem fácil de usar
GameObject > UI > Button
GameObject > UI > Button
lesgoy- Mestre
- PONTOS : 3489
REPUTAÇÃO : 49
Respeito as regras :
Re: Adicionar um botão!!
Sim, isso eu consegui, mas tem que programar ele para ele ter uma ação mas eu não sei como faz isso!! Por que só criar, ele não vai abrir nada, vai ficar apenas o botão lá!!
Edivandro2706- Avançado
- PONTOS : 2089
REPUTAÇÃO : 4
Respeito as regras :
Re: Adicionar um botão!!
Você pode através de um Script (ou desse mesmo), criar uma void que chame alguma outra cena de créditos, e com isso, dentro do botão, você marca através do "On Click"..Edivandro2706 escreveu:Sim, isso eu consegui, mas tem que programar ele para ele ter uma ação mas eu não sei como faz isso!! Por que só criar, ele não vai abrir nada, vai ficar apenas o botão lá!!
Por exemplo:
- Código:
public void CenaCréditos(){
Application.LoadLevel ("NomeDaCena");
}
Neste caso utilizei "Application.LoadLevel" por conta do meu Unity, mas se o seu for superior você deverá usar o SceneManagement..
Após isso vá no seu botão, e na caixa escrita "OnClick" você deve arrastar o Objeto que contenha esse script, e logo ao lado procure por este Script e selecione a void "CenaCreditos()"..
Acredito que você precise configurar de acordo com o script acima
- Código:
BotaoCreditos.onClick = new Button.ButtonClickedEvent();
Mas assim eu já não sei como se faz sahushau..
Re: Adicionar um botão!!
Está dando esse erro!! Eu acrescentei esses dois scripts que você passou mas está acontecendo isso...
NullReferenceException: Object reference not set to an instance of an object
MENU.Start () (at Assets/Scripts/MENU.cs:112)
NullReferenceException: Object reference not set to an instance of an object
MENU.Start () (at Assets/Scripts/MENU.cs:112)
- Código:
// =========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());
BotaoCreditos.onClick = new Button.ButtonClickedEvent();
}
//=========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";
}
public void CenaCréditos(){
Application.LoadLevel ("NomeDaCena");
Edivandro2706- Avançado
- PONTOS : 2089
REPUTAÇÃO : 4
Respeito as regras :
Re: Adicionar um botão!!
Tente fazer o seguinte processo, apague as linhas do scriptEdivandro2706 escreveu:Está dando esse erro!! Eu acrescentei esses dois scripts que você passou mas está acontecendo isso...
NullReferenceException: Object reference not set to an instance of an object
MENU.Start () (at Assets/Scripts/MENU.cs:112)
- Código:
// =========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());
BotaoCreditos.onClick = new Button.ButtonClickedEvent();
}
//=========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";
}
public void CenaCréditos(){
Application.LoadLevel ("NomeDaCena");
- Código:
BotaoCreditos.onClick = new Button.ButtonClickedEvent();
- Código:
public void CenaCréditos(){[size=14][/size] Application.LoadLevel ("NomeDaCena");
E tente fazer isto em um script separado ( o que pode ser meio desnecessário, mas é apenas para evitar conflitos com este seu Script)..
Crie um Script com o nome "CenaCreditos"
- Código:
using UnityEngine;
using System.Collections;
public class CenaCreditos : MonoBehaviour {
public void CenaCreditos(){
Application.LoadLevel ("NomeDaCena"); //Nome da sua cena de créditos
}
Aplique este script em um Objeto ou no próprio FPSController, logo após faça o mesmo procedimento dentro do botão de Creditos..
Na parte "OnClick" insira o Objeto ou o FPSController na qual inseriu o script, ao lado busque pela void CenaCreditos()..
Lembre-se de alterar o nome da cena para a sua cena..
Não tenho como testar no momento, mas acredito que essa seria a lógica..
Tópicos semelhantes
» Adicionar png
» Erro ao adicionar scripts
» Adicionar +1 ao colidir com objeto
» Adicionar contador ao Script.
» ADICIONAR EXCEÇÃO AO TIMESCALE
» Erro ao adicionar scripts
» Adicionar +1 ao colidir com objeto
» Adicionar contador ao Script.
» ADICIONAR EXCEÇÃO AO TIMESCALE
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos