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