[RESOLVIDO] Unity - Como Saber Se Botão Foi Clicado?
5 participantes
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
[RESOLVIDO] Unity - Como Saber Se Botão Foi Clicado?
Eu Criei O Seguinte Botão:
Como Faço Para Saber Qual dos Botões Foi Clickado?
- Código:
for (int c = 0; c < 3; c++)
{
Botao[c].onClick = new Button.ButtonClickedEvent();
Botao[c].onClick.AddListener(() => SalvarPreferencias());
}
Como Faço Para Saber Qual dos Botões Foi Clickado?
Última edição por Magnatah em Ter Abr 02, 2019 11:22 pm, editado 4 vez(es)
Magnatah- Instrutor
- PONTOS : 3547
REPUTAÇÃO : 209
Idade : 24
Áreas de atuação : Dєรєиvσlvєdσя Wєb(Fяσит-єиd), Blєиdєя, υиiтy, C#, ρнρ є Jαvαรcяiρт.
Respeito as regras :
Re: [RESOLVIDO] Unity - Como Saber Se Botão Foi Clicado?
Magnatah escreveu:Eu Criei O Seguinte Botão:
BtnSalvar.onClick = new Button.ButtonClickedEvent();
BtnSalvar.onClick.AddListener(() => SalvarPreferencias());
Como Faço Para Saber Se Ele Foi Clickado?
Criar uma variável bool e deixa ela falsa... Na void "SalvarPreferencias" você coloa pra essa variável bool ficar true... É bastante simples.
Só não sei se era essa exatamente a sua dúvida.
Re: [RESOLVIDO] Unity - Como Saber Se Botão Foi Clicado?
ou ele poder dar print
if(texteb){
print"apertou";
}
if(texteb){
print"apertou";
}
Chilinger- MembroAvançado
- PONTOS : 4091
REPUTAÇÃO : 42
Idade : 30
Respeito as regras :
Re: [RESOLVIDO] Unity - Como Saber Se Botão Foi Clicado?
MarcosSchultz escreveu:Magnatah escreveu:Eu Criei O Seguinte Botão:
BtnSalvar.onClick = new Button.ButtonClickedEvent();
BtnSalvar.onClick.AddListener(() => SalvarPreferencias());
Como Faço Para Saber Se Ele Foi Clickado?
Criar uma variável bool e deixa ela falsa... Na void "SalvarPreferencias" você coloa pra essa variável bool ficar true... É bastante simples.
Só não sei se era essa exatamente a sua dúvida.
Não Daria Certo, Pois Eu Queria Saber Qual Dos Botões Foi Apertado, e Todos Eles Chamam a Mesma Função.
Magnatah- Instrutor
- PONTOS : 3547
REPUTAÇÃO : 209
Idade : 24
Áreas de atuação : Dєรєиvσlvєdσя Wєb(Fяσит-єиd), Blєиdєя, υиiтy, C#, ρнρ є Jαvαรcяiρт.
Respeito as regras :
Re: [RESOLVIDO] Unity - Como Saber Se Botão Foi Clicado?
Então faça uma lista!Magnatah escreveu:MarcosSchultz escreveu:Magnatah escreveu:Eu Criei O Seguinte Botão:
BtnSalvar.onClick = new Button.ButtonClickedEvent();
BtnSalvar.onClick.AddListener(() => SalvarPreferencias());
Como Faço Para Saber Se Ele Foi Clickado?
Criar uma variável bool e deixa ela falsa... Na void "SalvarPreferencias" você coloa pra essa variável bool ficar true... É bastante simples.
Só não sei se era essa exatamente a sua dúvida.
Não Daria Certo, Pois Eu Queria Saber Qual Dos Botões Foi Apertado, e Todos Eles Chamam a Mesma Função.
tipo
- Código:
void Start()
{
BtnSalvar.onClick = new Button.ButtonClickedEvent();
BtnSalvar.onClick.AddListener(() => SalvarPreferencias());
//adicionando o botão na lista de precionados
BtnSalvar.onClick.AddListener(delegate { m_ButtonOnClick.Add(BtnSalvar); });
}
public void SalvarPreferencias()
{
}
//verificar se o botão esta na lista
//verificar se o botão foi precionado
public bool ButtonWasPressed(Button button) { return m_ButtonOnClick.Contains(button); }
Weslley- Moderador
- PONTOS : 5726
REPUTAÇÃO : 744
Idade : 26
Áreas de atuação : Inversión, Desarrollo, Juegos e Web
Respeito as regras :
Re: [RESOLVIDO] Unity - Como Saber Se Botão Foi Clicado?
Pesquisei Pela Função "delegate", Mas Não Achei Alguma Referencia Que Explicasse Direito.
Está Dando Erro No Retorno Da Função "ButtonWasPressed()", Diz Que o Valor Retornado é Nulo, Mesmo Eu Passando Um Valor.
Está Dando Erro No Retorno Da Função "ButtonWasPressed()", Diz Que o Valor Retornado é Nulo, Mesmo Eu Passando Um Valor.
Magnatah- Instrutor
- PONTOS : 3547
REPUTAÇÃO : 209
Idade : 24
Áreas de atuação : Dєรєиvσlvєdσя Wєb(Fяσит-єиd), Blєиdєя, υиiтy, C#, ρнρ є Jαvαรcяiρт.
Respeito as regras :
Re: [RESOLVIDO] Unity - Como Saber Se Botão Foi Clicado?
Caso queira entender melhor sobre delegates e eventos, assista os dois vídeos. Vai resolver seu problema com os buttons da Unity e dar uma bagagem de conhecimento pra aplicar em outras coisas...
Re: [RESOLVIDO] Unity - Como Saber Se Botão Foi Clicado?
- Spoiler:
[dimmuo]Caso queira entender melhor sobre delegates e eventos, assista os dois vídeos. Vai resolver seu problema com os buttons da Unity e dar uma bagagem de conhecimento pra aplicar em outras coisas...
[/quote]
- Eu Já Tinha Visto Esses Videos, Só Encontrei 1 Video No Youtube Em Portugues Falando sobre o Delegate, na verdade a pessoa do video apenas leu um trecho de um livro e que não estava nada facil de entender.
Preciso Aprender Inglês Urgente, RsRS!!.
E Eu pensando Que Meu Problema Era Simples.
Eu Criei Alguns Botões e Chamo a Mesma Função Em Todos Eles, Só queria Saber Qual Foi o Botão Clicado.
- Código:
for (int c = 0; c < 3; c++)
{
Botao[c].onClick = new Button.ButtonClickedEvent();
Botao[c].onClick.AddListener(() => SalvarPreferencias());
}
Magnatah- Instrutor
- PONTOS : 3547
REPUTAÇÃO : 209
Idade : 24
Áreas de atuação : Dєรєиvσlvєdσя Wєb(Fяσит-єиd), Blєиdєя, υиiтy, C#, ρнρ є Jαvαรcяiρт.
Respeito as regras :
Re: [RESOLVIDO] Unity - Como Saber Se Botão Foi Clicado?
Pensa comigo, se vc tem 3 botões, ambos os 3 chamam o mesmo método, por que diabos você precisa saber qual foi clicado? Se o usuário clicar em um deles, vai dar na mesma pois ambos fazem a mesma coisa, entende?
Re: [RESOLVIDO] Unity - Como Saber Se Botão Foi Clicado?
augustobrito escreveu:Pensa comigo, se vc tem 3 botões, ambos os 3 chamam o mesmo método, por que diabos você precisa saber qual foi clicado? Se o usuário clicar em um deles, vai dar na mesma pois ambos fazem a mesma coisa, entende?
Na verdade Não, pois estou criando um sistema de inventario bastante pratico, e os Botões que quero saber se foi clicado são as "Páginas" desse inventario.
(Não Quero Ficar "Linkando" O Script No Botão.)
(Eu Sei Que Existe Muitos Tutorias Ensinando a Criar Inventário, Mas Eu Quero Criar Do Zero, Também Para Ganhar Mais Conhecimento).
Vou Dar Um Exemplo:
- Tenho Um inventário Com 6 Espaços Para Guardar Itens.
- Tenho 2 Páginas, Cada Página Contem os 6 Espaços Para Guardar Itens.
- Quando o Usuário Clicar para abrir o Inventario irá mostrar a primeira pagina com os 6 "Itens".
- Clicou Na Segunda Página, Irá Mostra Mais 6 Itens.
Magnatah- Instrutor
- PONTOS : 3547
REPUTAÇÃO : 209
Idade : 24
Áreas de atuação : Dєรєиvσlvєdσя Wєb(Fяσит-єиd), Blєиdєя, υиiтy, C#, ρнρ є Jαvαรcяiρт.
Respeito as regras :
Re: [RESOLVIDO] Unity - Como Saber Se Botão Foi Clicado?
Se for só pra mudar de página, a única coisa que vc precisa é fazer com que o botão saiba da index que ele se encontra, o que vc pode fazer é passar um delegate que retorna int.
Re: [RESOLVIDO] Unity - Como Saber Se Botão Foi Clicado?
augustobrito escreveu:Se for só pra mudar de página, a única coisa que vc precisa é fazer com que o botão saiba da index que ele se encontra, o que vc pode fazer é passar um delegate que retorna int.
Mesmo eu Pesquisando bastante e Não Faço ideia De Como Usar o Delegate.
Desse Jeito Que Você Falou Iria Me Ajudar Muito.
Magnatah- Instrutor
- PONTOS : 3547
REPUTAÇÃO : 209
Idade : 24
Áreas de atuação : Dєรєиvσlvєdσя Wєb(Fяσит-єиd), Blєиdєя, υиiтy, C#, ρнρ є Jαvαรcяiρт.
Respeito as regras :
Re: [RESOLVIDO] Unity - Como Saber Se Botão Foi Clicado?
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine.UI;
using UnityEngine.EventSystems; //a biblioteca que faz a mágica
using UnityEngine;
public class BotaoClicado : MonoBehaviour {
public List<Button> _botoes = new List<Button>();
public int botaoSelecionado;
void Start () {
for (int c = 0; c < _botoes.Count; c++) {
_botoes[c].onClick = new Button.ButtonClickedEvent();
_botoes[c].onClick.AddListener(() => SalvarPreferencias());
}
}
public void SalvarPreferencias(){
Button tempButton = EventSystem.current.currentSelectedGameObject.GetComponent<Button>();
for (int x = 0; x < _botoes.Count; x++) {
if (tempButton == _botoes [x]) {
botaoSelecionado = x;
}
}
}
}
Re: [RESOLVIDO] Unity - Como Saber Se Botão Foi Clicado?
Minha Gambiarra Deu Certo kkkk
Subi De Nivel, Level 2 Em POG (programação orientada a Gambiarra)
- Código:
public int IdBotao;
void Awake()
{
for (byte c = 0; c <= (BotaoEspacos.Count-1); c++)
{
DefinirBtn(BotaoEspacos[c], c);
}
}
public void SetIdBotao(int val)
{
IdBotao = val;
}
private void DefinirBtn(Button btn, int val)
{
btn.onClick = new Button.ButtonClickedEvent();
btn.onClick.AddListener(() => SetIdBotao(val));
}
Subi De Nivel, Level 2 Em POG (programação orientada a Gambiarra)
Magnatah- Instrutor
- PONTOS : 3547
REPUTAÇÃO : 209
Idade : 24
Áreas de atuação : Dєรєиvσlvєdσя Wєb(Fяσит-єиd), Blєиdєя, υиiтy, C#, ρнρ є Jαvαรcяiρт.
Respeito as regras :
Tópicos semelhantes
» [RESOLVIDO] Como saber se um objeto existe ou não na cena
» [RESOLVIDO] Como saber se um Transform está se movendo?
» [RESOLVIDO] Quero saber se tem na unity alguma funçao que seja um trigger?
» [RESOLVIDO] Como saber se o jogador esta vendo um certo objeto?
» [RESOLVIDO] Como faz para o jogo saber se e windows, android,tablet , mac e ios?
» [RESOLVIDO] Como saber se um Transform está se movendo?
» [RESOLVIDO] Quero saber se tem na unity alguma funçao que seja um trigger?
» [RESOLVIDO] Como saber se o jogador esta vendo um certo objeto?
» [RESOLVIDO] Como faz para o jogo saber se e windows, android,tablet , mac e ios?
SchultzGames :: UNITY 3D :: Resolvidos
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos