Noticias

¡RECUERDA QUE SI ERES UN NUEVO USUARIO, DEBES PRESENTARTE PARA PODER PUBLICAR MENSAJES! | TENEMOS CANAL OFICIAL DE TELEGRAM: t.me/unity3dspain

Salvar cuenta atrás entre varias escenas

Iniciado por Argo214, Febrero 15, 2016, 01:35:00 PM

Tema anterior - Siguiente tema
Buenas! Estoy con un juego en el que quiero crear una cuenta atrás de tiempo que se vaya manteniendo al pasar por varias escenas y que cuando llegue a cero salte a una pantalla de Gameover. Lo estoy haciendo con Playerprefs no me funciona porque al pasar de una escena a otra, en vez de comenzar partiendo del tiempo consumido en la anterior, me lleva directamente a la pantalla de Gameover. Me podéis ayudar? Dejo abajo el código que estoy utilizando:using UnityEngine;
using System.Collections;
using UnityEngine.UI;

public class Tiempo : MonoBehaviour {

    public Text timeText;
    public float timer = 120.0f;

    void Start ()
    {
        
        timer = PlayerPrefs.GetFloat ("timer");
        timeText.text = "" + timer.ToString ("00:00");

    }

    void Update () {
        timer -= Time.deltaTime;
        timeText.text = "" + timer.ToString ("00:00");


        if (timer <= 0) {

            PlayerPrefs.SetFloat("timer", timer);
            Application.LoadLevel("Gameover");

        }
    }
}

Hola!Creo que deberias mejor utilizar alguna variable estatica que almacene el tiempo de la cuenta atras en vez de utilizar PlayerPref. Las variables static conservan su valor entre escenas y las puedes llamar desde cualquier script si las declaras como publicasCrea un script  y declara la variable static que almacene el tiempo de la cuenta:
public static float cuentaAtras
 Despues en cada escena puedes llamar a esta variable de la siguiente manera en el update de cualquier script 
nombreScript.cuentaAtras -= Time.deltaTime;
Asi podras mantener la pista desde cualquier escena Saludos

Etiquetas: