hola amigos tengo un problema con el button a la hora de colocarle un script de un cronometro bueno mi problemas es que cuando presiono el botón para poner en marcha el cronometro solo avanza unos milis segundo y se para, tengo que presionar otra vez para que avance en donde se dejo pero no actúa como un cronometro normal el script trabaja perfecta mente en start y update pero cuando lo coloco en button actúa de esa manera que me pueden sugerir para que el cronometro avance normalmente.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class contador : MonoBehaviour {
public Text texto;
float tiempo =4F;
void Start () {
texto.text = ""+ tiempo;
}
void Update () {
}
public void boton(){
tiempo -= Time.deltaTime;
texto.text =""+tiempo;
}
}
(//%3CfileStore.core_Attachment%3E/monthly_2017_05/contador.png.13415c2bfd46006ff37618913973fee1.png)
El botón llama 1 sola vez la función que le pasas, lo que tienes que hacer es poner la función en el update y "activar" el cronómetro con el botón.
Update () {
if(activo)
//lo que ahora tienes en boton
}
boton () {
activo = !activo;
}
Así cuando pulses botón paras o inicias el cronómetro, también puedes reiniciar poniéndolo a 4 de nuevo.
gracias amigo si funciono gracias por ayudarme aquí dejo el código por si alguien quiere hacer un cronometro que llegue a un tiempo determinado y comienza en el tiempo que ustedes deseen
public Text texto;
float tiempo =4F;
bool activo=false;
void Start () {
texto.text = ""+ tiempo;
}
public void Update () {
if(activo){
tiempo -= Time.deltaTime;
texto.text =""+tiempo;
}
if(tiempo<=0f)
{
tiempo=4f;
activo =! activo;
}
}
public void boton(){
activo =! activo;
}
}