Não consigo executar ação ao clicar no Botão
3 participantes
Página 1 de 1
Não consigo executar ação ao clicar no Botão
Oi Pessoal, tudo bom?
Antes de criar este tópico, pesquisei aqui em outros tópicos, mas não consegui resolver...
É o seguinte, tenho um script que faz um cálculo ele basicamente pega valores de outros scripts e calcula. O calculo está funcionando, mas preciso que seja feito apenas quando um determinado botão for pressionado.
Então tenho: um script de valoresPadrao -> atrelado a camera
e o script Calc_burger atrelado botão Humburger (obs: já tentei atrelar este script a camera ou a outros objetos, mas não funcionou)
Estou criando um Event Trigger - Pointer Click passando o objeto botão Humburger(que possui o script) e chamando o script Calc_burger e o método Calcula_empan_Humburguer()
Segue os prints e os scripts:
Script Calc_burger:
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
public class Calc_Burger : MonoBehaviour {
public Valorespadrao Burger_Valor_padrao;
public Libera_comida pode_comer;
public float Calculo_Empan_burger;
public float Empan_burguer;
public float nivel_burger;
public float somatorio_barra_empan;
public bool condicao_libera_comida;
public int Executa_acao;
//public Text vomitou;
//public Text placar;
public float pontuacao;
public float Tempo_espera;
// Use this for initialization
void Start() {
//-------------------------Empanzinamento------------------------------------
Burger_Valor_padrao = GameObject.FindObjectOfType<Valorespadrao>();
Empan_burguer = Burger_Valor_padrao._fator_burger;
nivel_burger = Burger_Valor_padrao._nivel_empan_burger;
//-----------------------------------------------------------------------------
//--------------------------Libera comida--------------------------------------
pode_comer = GameObject.FindObjectOfType<Libera_comida>();
condicao_libera_comida = pode_comer.condicaoIntervaloComida;
//-----------------------------------------------------------------------------
pontuacao = 0;
Tempo_espera = 2.5f;
}
// Update is called once per frame
void Update()
{
}
public void Calcula_empan_Humburguer() {
if (condicao_libera_comida == true)
{
Calculo_Empan_burger = Calculo_Empan_burger + (Empan_burguer * nivel_burger);
pode_comer.condicaoIntervaloComida = false;
StartCoroutine(pode_comer.esperaPraComer(Tempo_espera));
}
}
}
Print
Antes de criar este tópico, pesquisei aqui em outros tópicos, mas não consegui resolver...
É o seguinte, tenho um script que faz um cálculo ele basicamente pega valores de outros scripts e calcula. O calculo está funcionando, mas preciso que seja feito apenas quando um determinado botão for pressionado.
Então tenho: um script de valoresPadrao -> atrelado a camera
e o script Calc_burger atrelado botão Humburger (obs: já tentei atrelar este script a camera ou a outros objetos, mas não funcionou)
Estou criando um Event Trigger - Pointer Click passando o objeto botão Humburger(que possui o script) e chamando o script Calc_burger e o método Calcula_empan_Humburguer()
Segue os prints e os scripts:
Script Calc_burger:
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
public class Calc_Burger : MonoBehaviour {
public Valorespadrao Burger_Valor_padrao;
public Libera_comida pode_comer;
public float Calculo_Empan_burger;
public float Empan_burguer;
public float nivel_burger;
public float somatorio_barra_empan;
public bool condicao_libera_comida;
public int Executa_acao;
//public Text vomitou;
//public Text placar;
public float pontuacao;
public float Tempo_espera;
// Use this for initialization
void Start() {
//-------------------------Empanzinamento------------------------------------
Burger_Valor_padrao = GameObject.FindObjectOfType<Valorespadrao>();
Empan_burguer = Burger_Valor_padrao._fator_burger;
nivel_burger = Burger_Valor_padrao._nivel_empan_burger;
//-----------------------------------------------------------------------------
//--------------------------Libera comida--------------------------------------
pode_comer = GameObject.FindObjectOfType<Libera_comida>();
condicao_libera_comida = pode_comer.condicaoIntervaloComida;
//-----------------------------------------------------------------------------
pontuacao = 0;
Tempo_espera = 2.5f;
}
// Update is called once per frame
void Update()
{
}
public void Calcula_empan_Humburguer() {
if (condicao_libera_comida == true)
{
Calculo_Empan_burger = Calculo_Empan_burger + (Empan_burguer * nivel_burger);
pode_comer.condicaoIntervaloComida = false;
StartCoroutine(pode_comer.esperaPraComer(Tempo_espera));
}
}
}
LeoOliveiraRJ- Iniciante
- PONTOS : 3032
REPUTAÇÃO : 0
Respeito as regras :
Re: Não consigo executar ação ao clicar no Botão
Boa tarde. Cara tem mais um script envolvido ai, mas o jeito que você está escrevendo as variáveis fica realmente muito difícil de ler o script.
Deixe-o mais coerente, ao invés de escrever
public bool condicao_libera_comida;
Escreva algo do tipo
public bool liberarComida;
Pelo fato de ser uma bool, nós programadores já sabemos que é uma condição.
O mesmo se aplica para float e int. Essas variáveis só podem receber valores e cálculos, então não há necessidade de escrever Calculo_Empan_burger.
É como se você falasse "vou subir pra cima, descer pra baixo, entrar pra dentro, sair pra fora, plantar uma planta, etc". Isso foi só uma dica, ok?
Mas enfim, poderia colocar o script Libera_comida para nós analisarmos?
Deixe-o mais coerente, ao invés de escrever
public bool condicao_libera_comida;
Escreva algo do tipo
public bool liberarComida;
Pelo fato de ser uma bool, nós programadores já sabemos que é uma condição.
O mesmo se aplica para float e int. Essas variáveis só podem receber valores e cálculos, então não há necessidade de escrever Calculo_Empan_burger.
É como se você falasse "vou subir pra cima, descer pra baixo, entrar pra dentro, sair pra fora, plantar uma planta, etc". Isso foi só uma dica, ok?
Mas enfim, poderia colocar o script Libera_comida para nós analisarmos?
George Lucas Vieira- Avançado
- PONTOS : 3391
REPUTAÇÃO : 132
Idade : 21
Áreas de atuação : Programação, Modelagem e Animação.
Respeito as regras :
Re: Não consigo executar ação ao clicar no Botão
Opa George, Obrigado pelo interesse em ajudar!!!!
Entendi a dica, estava fazendo assim até agora, porque como não tenho experiencia em programação fica mais fácil pra mim entender o que eu mesmo fiz. rsrsrs Mas vou tentar me habituar a esta maneira.
Em relação ao problema, consegui resolver, então vou colocar a solução para que ajude outros iniciantes.
Como pode ser visto no print, estava usando o "Event Trigger" para capturar o evento de clique no botão, e além disso meus botões estavam zuados, não estavam recebendo o clique do mouse(deve ter feito algo que estragou o botão)
Troquei os botões e passei a usar o "On Click" (que na verdade estava procurando esse evento, desde o inicio mas não conseguia encontrar).
Entendi a dica, estava fazendo assim até agora, porque como não tenho experiencia em programação fica mais fácil pra mim entender o que eu mesmo fiz. rsrsrs Mas vou tentar me habituar a esta maneira.
Em relação ao problema, consegui resolver, então vou colocar a solução para que ajude outros iniciantes.
Como pode ser visto no print, estava usando o "Event Trigger" para capturar o evento de clique no botão, e além disso meus botões estavam zuados, não estavam recebendo o clique do mouse(deve ter feito algo que estragou o botão)
Troquei os botões e passei a usar o "On Click" (que na verdade estava procurando esse evento, desde o inicio mas não conseguia encontrar).
LeoOliveiraRJ- Iniciante
- PONTOS : 3032
REPUTAÇÃO : 0
Respeito as regras :
Re: Não consigo executar ação ao clicar no Botão
amigo eu faço de uma forma mais facil para mim assim:LeoOliveiraRJ escreveu:Oi Pessoal, tudo bom?
Antes de criar este tópico, pesquisei aqui em outros tópicos, mas não consegui resolver...
É o seguinte, tenho um script que faz um cálculo ele basicamente pega valores de outros scripts e calcula. O calculo está funcionando, mas preciso que seja feito apenas quando um determinado botão for pressionado.
Então tenho: um script de valoresPadrao -> atrelado a camera
e o script Calc_burger atrelado botão Humburger (obs: já tentei atrelar este script a camera ou a outros objetos, mas não funcionou)
Estou criando um Event Trigger - Pointer Click passando o objeto botão Humburger(que possui o script) e chamando o script Calc_burger e o método Calcula_empan_Humburguer()
Segue os prints e os scripts:
Script Calc_burger:
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
public class Calc_Burger : MonoBehaviour {
public Valorespadrao Burger_Valor_padrao;
public Libera_comida pode_comer;
public float Calculo_Empan_burger;
public float Empan_burguer;
public float nivel_burger;
public float somatorio_barra_empan;
public bool condicao_libera_comida;
public int Executa_acao;
//public Text vomitou;
//public Text placar;
public float pontuacao;
public float Tempo_espera;
// Use this for initialization
void Start() {
//-------------------------Empanzinamento------------------------------------
Burger_Valor_padrao = GameObject.FindObjectOfType<Valorespadrao>();
Empan_burguer = Burger_Valor_padrao._fator_burger;
nivel_burger = Burger_Valor_padrao._nivel_empan_burger;
//-----------------------------------------------------------------------------
//--------------------------Libera comida--------------------------------------
pode_comer = GameObject.FindObjectOfType<Libera_comida>();
condicao_libera_comida = pode_comer.condicaoIntervaloComida;
//-----------------------------------------------------------------------------
pontuacao = 0;
Tempo_espera = 2.5f;
}
// Update is called once per frame
void Update()
{
}
public void Calcula_empan_Humburguer() {
if (condicao_libera_comida == true)
{
Calculo_Empan_burger = Calculo_Empan_burger + (Empan_burguer * nivel_burger);
pode_comer.condicaoIntervaloComida = false;
StartCoroutine(pode_comer.esperaPraComer(Tempo_espera));
}
}
}
primeiro adiciono um button
public Button onomequevcquizer
depois vou no inspector e fico setando os botoes
depois na update eu adciono um evento
nomedobotao.onClick = new Button.ButtonClickedEvent();
e depois se eu cliclar no botao comeca uma vioda
nomedobotao.onClick.AddListener(() => nomedavoid());
void nomedavoid (){
{
application.quit();
}
ta confso eu sei mais eu faço asim.e nao preciso clicar no button nem adcionar nada no seu Onclick..pra minm ja funcionar de boas... :bounce: :bounce:
Tópicos semelhantes
» Clicar em um Sprite e realizar uma ação
» Ajuda - Apertar botao e executar uma ação
» COMO EXECUTAR UMA AÇÃO EM DETERMINADA DISTANCIA?
» Como faço pra executar a ação apenas 1 vez ?
» Como posso Executar uma ação apenas uma vez no Update?
» Ajuda - Apertar botao e executar uma ação
» COMO EXECUTAR UMA AÇÃO EM DETERMINADA DISTANCIA?
» Como faço pra executar a ação apenas 1 vez ?
» Como posso Executar uma ação apenas uma vez no Update?
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos