Noticias

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

Barra de salud no funciona al reiniciar juego

Iniciado por piter_1, Abril 17, 2017, 02:38:42 AM

Tema anterior - Siguiente tema
Muy buenas todos este es mi primer post .   estos son mis primeros pasos con  Unity   y estoy buscando alguien que me saque del agujero. Veréis , he hecho un juego tiene menú con un botón jugar  que  al hacer clic nos lleva al primer nivel allí el personaje tiene una barra de salud   y puntuación  después del primer nivel tenemos un segundo nivel he conseguido pasar el estado de la salud y puncionan al segundo nivel. si el jugador pasa el segundo nivel se acaba el juego y se carga la escena de fin de juego. hasta aquí todo bien . pero si el jugador muere  vuelve al menú con la opción de botónes jugar o salir  si le da a jugar iniciar el juego otra vez pero la barra de salud ya  no funciona y me esta volviendo loco.    Osea todo el juego va bien hasta que el jugador muere y le vuelve a dar a jugar.  allí ya no se muestra la barra de salud sobre el personaje cuando al iniciar el juego por primera vez si se muestra la barra de salud .He  dejado el juego en solo un menú y primer nivel  para reducir el peso del juego he visto que sol se puede cargar hasta un  máximo de 50 megas mi juego ahora pesa 150 megas Quien me hecha una mano que me estoy volviendo loco????

Esto es algo que sucede muy a menudo, se trata de saber programar y referenciar las cosas, para hacerlo simple te dejo ejemplo de como lo haría
 

public static class GameData
{
public const int INIT_HEALTH = 100;
public const int INIT_SCORE = 0;
public static int Health {get; private set;}
public static int Score {get; private set;}
public static void Restart()
{
   Health = INIT_HEALTH;
   Score = INIT_SCORE;
}
    public static void AddScore(int amount)
    {
   Score += amount;
    }
public static bool TakeDamage(int amount)
{
   Health -= amount;
   Health = Mathf.Clamp(Health, 0, INIT_HEALTH);
   return Health == 0;
}
}

 
Esta clase al ser estática no necesita instancia ni referencia.
 
Para usarla por ejemplo desde la función Start solo necesitas hacer lo siguiente
 

private void Start()
{
GameData.Reset();
GameData.AddScore(100);
GameData.TakeDamage(10);
}

 
Saludos...

Abril 17, 2017, 10:40:24 AM #2 Ultima modificación: Abril 17, 2017, 02:13:49 PM por piter_1
 Gracias  francoe1 ,
 
Pero corrijo mi primer post me he dado cuenta que el Healthbar SI   esta pero no se ve  ya que si el personaje muere el jugador vuelve al scene menu si le da al boton play  en el momento que cae 5 objetos encima del personaje  este vuelve a morir. Por lo que el Healthbar si funciona pero no se ve al reinicar. 
 
He encontrado el problema  pero no la solucion, resulta que para llevar me el estado de la barra de salud y la puntuación al level2  me cree un script con  el típico DontDestroyOnLoad(this) y se la puesto al personaje.  He probado el juego sin este script en el personaje y ya funciona pero no me puedo llevar la puntuacion y estado de la barra de salud al nivel 2.
 
solucion o  me llevo los dos estado al level2 de otra forma que no afecte al menu o cuando el juego este en menu el personaje sea destruido pero como lo hago?????
 
 
 
 
 
Os dejo este link para descargar por si le quereis echar un vistazo  y  ser participe de esta situacion tan rara para mi. solo tiene dos ecenas menu y nivel uno objetos que caen y una barrra de salud que sigue al jugador en el momento que saltes de la plataform mueres en el momento que caigan 5 objetos encima del personaje muere , se vuelve al menu  dar al boton play  le he quitado todo lo demas objeto que seria otro nivel mas y escena  fin de juego.
 
https://www.dropbox.com/s/ghmkpgy4adk28vp/AstronautaUntiy4.rar?dl=0
 
Tambien dejo los Scrip  DatosPers con el DontDestroyOnLoad(this)  que va con el Gameobject player y  Loadlevel  que esta en el boton jugar.
 
 
 
 
 
//www.unityspain.com/applications/core/interface/file/attachment.php?id=10424" data-fileid="10424" rel="">DatosPers.cs
 
//www.unityspain.com/applications/core/interface/file/attachment.php?id=10425" data-fileid="10425" rel="">LoadLevel.cs
 
 
 
Edito otra vez resulta que me he dado cuenta que al morir y volver a jugar me duplica el personaje 

Ya solucione mi problema ,Gracias a todos por la ayuda

Etiquetas: